From 236f03c0b9a4982328ed1201978f7f69d192d9b2 Mon Sep 17 00:00:00 2001 From: Anton Novoselov Date: Tue, 1 Aug 2017 12:53:38 +0300 Subject: Blast 1.1 release (windows / linux) see docs/release_notes.txt for details --- docs/api_docs/files/_nv_blast_8h-source.html | 485 +++++++++-------- docs/api_docs/files/_nv_blast_8h.html | 185 ++++++- .../files/_nv_blast_allocator_8h-source.html | 90 ++++ docs/api_docs/files/_nv_blast_allocator_8h.html | 43 ++ docs/api_docs/files/_nv_blast_array_8h-source.html | 87 +++ docs/api_docs/files/_nv_blast_array_8h.html | 46 ++ .../api_docs/files/_nv_blast_assert_8h-source.html | 146 +++--- docs/api_docs/files/_nv_blast_assert_8h.html | 8 +- .../api_docs/files/_nv_blast_atomic_8h-source.html | 82 +-- docs/api_docs/files/_nv_blast_atomic_8h.html | 2 +- .../api_docs/files/_nv_blast_d_link_8h-source.html | 562 ++++++++++---------- docs/api_docs/files/_nv_blast_d_link_8h.html | 2 +- .../_nv_blast_ext_apex_import_tool_8h-source.html | 249 ++++----- .../files/_nv_blast_ext_apex_import_tool_8h.html | 2 +- .../files/_nv_blast_ext_asset_utils_8h-source.html | 101 ++++ .../files/_nv_blast_ext_asset_utils_8h.html | 224 ++++++++ .../files/_nv_blast_ext_authoring_8h-source.html | 101 ++++ .../api_docs/files/_nv_blast_ext_authoring_8h.html | 310 +++++++++++ ...ast_ext_authoring_bond_generator_8h-source.html | 194 +++---- .../_nv_blast_ext_authoring_bond_generator_8h.html | 9 +- ..._ext_authoring_collision_builder_8h-source.html | 151 +++--- ...v_blast_ext_authoring_collision_builder_8h.html | 8 +- ...last_ext_authoring_fracture_tool_8h-source.html | 368 ++++++------- .../_nv_blast_ext_authoring_fracture_tool_8h.html | 5 +- .../_nv_blast_ext_authoring_mesh_8h-source.html | 163 +++--- .../files/_nv_blast_ext_authoring_mesh_8h.html | 14 +- ...blast_ext_authoring_mesh_cleaner_8h-source.html | 83 +++ .../_nv_blast_ext_authoring_mesh_cleaner_8h.html | 43 ++ .../_nv_blast_ext_authoring_types_8h-source.html | 318 +++++++---- .../files/_nv_blast_ext_authoring_types_8h.html | 43 +- .../_nv_blast_ext_custom_profiler_8h-source.html | 171 ++++++ .../files/_nv_blast_ext_custom_profiler_8h.html | 110 ++++ .../_nv_blast_ext_damage_shaders_8h-source.html | 166 +++--- .../files/_nv_blast_ext_damage_shaders_8h.html | 82 ++- .../_nv_blast_ext_data_converter_8h-source.html | 57 -- .../files/_nv_blast_ext_data_converter_8h.html | 44 -- .../files/_nv_blast_ext_exporter_8h-source.html | 186 +++++++ docs/api_docs/files/_nv_blast_ext_exporter_8h.html | 144 +++++ ...last_ext_exporter_json_collision_8h-source.html | 82 +++ .../_nv_blast_ext_exporter_json_collision_8h.html | 43 ++ ..._blast_ext_impact_damage_manager_8h-source.html | 193 ++++--- .../_nv_blast_ext_impact_damage_manager_8h.html | 2 +- .../_nv_blast_ext_ll_serialization_8h-source.html | 95 ++++ .../files/_nv_blast_ext_ll_serialization_8h.html | 171 ++++++ .../api_docs/files/_nv_blast_ext_px_8h-source.html | 60 ++- docs/api_docs/files/_nv_blast_ext_px_8h.html | 2 +- .../files/_nv_blast_ext_px_actor_8h-source.html | 122 +++-- docs/api_docs/files/_nv_blast_ext_px_actor_8h.html | 2 +- .../files/_nv_blast_ext_px_asset_8h-source.html | 256 +++++---- docs/api_docs/files/_nv_blast_ext_px_asset_8h.html | 2 +- .../files/_nv_blast_ext_px_family_8h-source.html | 256 ++++----- .../api_docs/files/_nv_blast_ext_px_family_8h.html | 2 +- .../files/_nv_blast_ext_px_listener_8h-source.html | 96 ++-- .../files/_nv_blast_ext_px_listener_8h.html | 2 +- .../files/_nv_blast_ext_px_manager_8h-source.html | 246 +++++---- .../files/_nv_blast_ext_px_manager_8h.html | 2 +- .../_nv_blast_ext_px_serialization_8h-source.html | 98 ++++ .../files/_nv_blast_ext_px_serialization_8h.html | 146 ++++++ .../_nv_blast_ext_px_stress_solver_8h-source.html | 93 ++++ .../files/_nv_blast_ext_px_stress_solver_8h.html | 44 ++ .../files/_nv_blast_ext_px_task_8h-source.html | 102 ++++ docs/api_docs/files/_nv_blast_ext_px_task_8h.html | 45 ++ .../_nv_blast_ext_serialization_8h-source.html | 110 ++++ .../files/_nv_blast_ext_serialization_8h.html | 73 +++ ...last_ext_serialization_interface_8h-source.html | 66 --- .../_nv_blast_ext_serialization_interface_8h.html | 393 -------------- ..._ext_serialization_l_l_interface_8h-source.html | 71 --- ...v_blast_ext_serialization_l_l_interface_8h.html | 248 --------- .../_nv_blast_ext_stress_solver_8h-source.html | 263 ++++++---- .../files/_nv_blast_ext_stress_solver_8h.html | 12 +- .../files/_nv_blast_ext_sync_8h-source.html | 258 ++++----- docs/api_docs/files/_nv_blast_ext_sync_8h.html | 4 +- .../_nv_blast_ext_tk_serialization_8h-source.html | 88 ++++ .../files/_nv_blast_ext_tk_serialization_8h.html | 132 +++++ .../files/_nv_blast_fixed_array_8h-source.html | 212 ++++---- docs/api_docs/files/_nv_blast_fixed_array_8h.html | 2 +- .../files/_nv_blast_fixed_bitmap_8h-source.html | 202 +++---- docs/api_docs/files/_nv_blast_fixed_bitmap_8h.html | 2 +- .../_nv_blast_fixed_bool_array_8h-source.html | 184 ++++--- .../files/_nv_blast_fixed_bool_array_8h.html | 2 +- .../_nv_blast_fixed_priority_queue_8h-source.html | 326 ++++++------ .../files/_nv_blast_fixed_priority_queue_8h.html | 2 +- .../files/_nv_blast_geometry_8h-source.html | 316 ++++++----- docs/api_docs/files/_nv_blast_geometry_8h.html | 9 +- .../files/_nv_blast_globals_8h-source.html | 203 +++++++ docs/api_docs/files/_nv_blast_globals_8h.html | 559 ++++++++++++++++++++ .../files/_nv_blast_hash_map_8h-source.html | 80 +++ docs/api_docs/files/_nv_blast_hash_map_8h.html | 44 ++ .../files/_nv_blast_hash_set_8h-source.html | 79 +++ docs/api_docs/files/_nv_blast_hash_set_8h.html | 44 ++ .../files/_nv_blast_include_windows_8h-source.html | 183 ++++--- .../files/_nv_blast_include_windows_8h.html | 2 +- .../files/_nv_blast_index_fns_8h-source.html | 180 ++++--- docs/api_docs/files/_nv_blast_index_fns_8h.html | 2 +- .../files/_nv_blast_iterator_base_8h-source.html | 242 +++++---- .../api_docs/files/_nv_blast_iterator_base_8h.html | 2 +- docs/api_docs/files/_nv_blast_math_8h-source.html | 170 +++--- docs/api_docs/files/_nv_blast_math_8h.html | 6 +- .../api_docs/files/_nv_blast_memory_8h-source.html | 228 ++++---- docs/api_docs/files/_nv_blast_memory_8h.html | 2 +- .../files/_nv_blast_preprocessor_8h-source.html | 68 ++- docs/api_docs/files/_nv_blast_preprocessor_8h.html | 102 +--- .../_nv_blast_preprocessor_internal_8h-source.html | 94 ++-- .../files/_nv_blast_preprocessor_internal_8h.html | 114 +++- .../files/_nv_blast_profiler_8h-source.html | 112 ++-- docs/api_docs/files/_nv_blast_profiler_8h.html | 50 +- .../_nv_blast_profiler_internal_8h-source.html | 86 --- .../files/_nv_blast_profiler_internal_8h.html | 148 ------ .../files/_nv_blast_px_callbacks_8h-source.html | 96 ++++ docs/api_docs/files/_nv_blast_px_callbacks_8h.html | 82 +++ docs/api_docs/files/_nv_blast_time_8h-source.html | 215 ++++---- docs/api_docs/files/_nv_blast_time_8h.html | 2 +- docs/api_docs/files/_nv_blast_tk_8h-source.html | 66 ++- docs/api_docs/files/_nv_blast_tk_8h.html | 2 +- .../files/_nv_blast_tk_actor_8h-source.html | 178 ++++--- docs/api_docs/files/_nv_blast_tk_actor_8h.html | 2 +- .../files/_nv_blast_tk_asset_8h-source.html | 128 +++-- docs/api_docs/files/_nv_blast_tk_asset_8h.html | 4 +- .../files/_nv_blast_tk_event_8h-source.html | 244 +++++---- docs/api_docs/files/_nv_blast_tk_event_8h.html | 2 +- .../files/_nv_blast_tk_family_8h-source.html | 136 ++--- docs/api_docs/files/_nv_blast_tk_family_8h.html | 4 +- .../files/_nv_blast_tk_framework_8h-source.html | 314 ++++++----- docs/api_docs/files/_nv_blast_tk_framework_8h.html | 18 +- .../files/_nv_blast_tk_group_8h-source.html | 170 +++--- docs/api_docs/files/_nv_blast_tk_group_8h.html | 6 +- .../files/_nv_blast_tk_identifiable_8h-source.html | 106 ++-- .../files/_nv_blast_tk_identifiable_8h.html | 2 +- .../files/_nv_blast_tk_joint_8h-source.html | 100 ++-- docs/api_docs/files/_nv_blast_tk_joint_8h.html | 2 +- .../files/_nv_blast_tk_object_8h-source.html | 98 ++-- docs/api_docs/files/_nv_blast_tk_object_8h.html | 2 +- .../files/_nv_blast_tk_serializable_8h-source.html | 75 --- .../files/_nv_blast_tk_serializable_8h.html | 47 -- .../files/_nv_blast_tk_type_8h-source.html | 98 ++-- docs/api_docs/files/_nv_blast_tk_type_8h.html | 2 +- docs/api_docs/files/_nv_blast_types_8h-source.html | 538 ++++++++++--------- docs/api_docs/files/_nv_blast_types_8h.html | 6 +- docs/api_docs/files/_nv_c_types_8h-source.html | 138 +++++ docs/api_docs/files/_nv_c_types_8h.html | 63 +++ docs/api_docs/files/annotated.html | 53 +- docs/api_docs/files/apex__importer_8txt.html | 2 +- .../files/api__ext__users__guide_8txt.html | 2 +- .../files/api__globals__users__guide_8txt.html | 32 ++ .../api_docs/files/api__hl__users__guide_8txt.html | 2 +- .../api_docs/files/api__ll__users__guide_8txt.html | 2 +- docs/api_docs/files/api__users__guide_8txt.html | 2 +- docs/api_docs/files/authoring__tool_8txt.html | 2 +- .../class_nv_1_1_blast_1_1_allocator-members.html | 33 ++ .../files/class_nv_1_1_blast_1_1_allocator.html | 125 +++++ ...v_1_1_blast_1_1_allocator_callback-members.html | 33 ++ .../class_nv_1_1_blast_1_1_allocator_callback.html | 157 ++++++ ...apex_importer_1_1_apex_import_tool-members.html | 7 +- ...ast_1_1_apex_importer_1_1_apex_import_tool.html | 47 +- ...1_1_blast_1_1_blast_bond_generator-members.html | 13 +- ...lass_nv_1_1_blast_1_1_blast_bond_generator.html | 195 ++++--- ..._1_1_blast_1_1_convex_mesh_builder-members.html | 13 +- ...class_nv_1_1_blast_1_1_convex_mesh_builder.html | 119 +++-- .../class_nv_1_1_blast_1_1_d_list-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_d_list.html | 2 +- ...ass_nv_1_1_blast_1_1_d_list_1_1_it-members.html | 2 +- .../class_nv_1_1_blast_1_1_d_list_1_1_it.html | 2 +- .../class_nv_1_1_blast_1_1_d_list_it-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_d_list_it.html | 2 +- ...ss_nv_1_1_blast_1_1_error_callback-members.html | 32 ++ .../class_nv_1_1_blast_1_1_error_callback.html | 125 +++++ ..._1_1_blast_1_1_ext_custom_profiler-members.html | 35 ++ ...class_nv_1_1_blast_1_1_ext_custom_profiler.html | 142 +++++ .../class_nv_1_1_blast_1_1_ext_custom_profiler.png | Bin 0 -> 573 bytes ...1_blast_1_1_ext_group_task_manager-members.html | 37 ++ ...ss_nv_1_1_blast_1_1_ext_group_task_manager.html | 214 ++++++++ ...last_1_1_ext_impact_damage_manager-members.html | 2 +- ...nv_1_1_blast_1_1_ext_impact_damage_manager.html | 2 +- ...lass_nv_1_1_blast_1_1_ext_px_actor-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_ext_px_actor.html | 2 +- ...lass_nv_1_1_blast_1_1_ext_px_asset-members.html | 9 +- .../files/class_nv_1_1_blast_1_1_ext_px_asset.html | 167 ++++-- ...ass_nv_1_1_blast_1_1_ext_px_family-members.html | 2 +- .../class_nv_1_1_blast_1_1_ext_px_family.html | 2 +- ...s_nv_1_1_blast_1_1_ext_px_listener-members.html | 2 +- .../class_nv_1_1_blast_1_1_ext_px_listener.html | 2 +- ...ss_nv_1_1_blast_1_1_ext_px_manager-members.html | 2 +- .../class_nv_1_1_blast_1_1_ext_px_manager.html | 4 +- ...1_1_blast_1_1_ext_px_stress_solver-members.html | 34 ++ ...lass_nv_1_1_blast_1_1_ext_px_stress_solver.html | 157 ++++++ ...nv_1_1_blast_1_1_ext_serialization-members.html | 39 ++ .../class_nv_1_1_blast_1_1_ext_serialization.html | 357 +++++++++++++ ..._serialization_1_1_buffer_provider-members.html | 31 ++ ..._1_1_ext_serialization_1_1_buffer_provider.html | 65 +++ ...nv_1_1_blast_1_1_ext_stress_solver-members.html | 23 +- .../class_nv_1_1_blast_1_1_ext_stress_solver.html | 543 +++++++++++++++++-- .../class_nv_1_1_blast_1_1_ext_sync-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_ext_sync.html | 2 +- ...class_nv_1_1_blast_1_1_fixed_array-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_fixed_array.html | 2 +- ...lass_nv_1_1_blast_1_1_fixed_bitmap-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_fixed_bitmap.html | 2 +- ..._nv_1_1_blast_1_1_fixed_bool_array-members.html | 2 +- .../class_nv_1_1_blast_1_1_fixed_bool_array.html | 2 +- ...1_1_blast_1_1_fixed_priority_queue-members.html | 2 +- ...lass_nv_1_1_blast_1_1_fixed_priority_queue.html | 2 +- ...ass_nv_1_1_blast_1_1_fracture_tool-members.html | 56 +- .../class_nv_1_1_blast_1_1_fracture_tool.html | 581 ++++++--------------- ...nv_1_1_blast_1_1_i_fbx_file_reader-members.html | 46 ++ .../class_nv_1_1_blast_1_1_i_fbx_file_reader.html | 102 ++++ .../class_nv_1_1_blast_1_1_i_fbx_file_reader.png | Bin 0 -> 548 bytes ...v_1_1_blast_1_1_i_mesh_file_reader-members.html | 44 ++ .../class_nv_1_1_blast_1_1_i_mesh_file_reader.html | 366 +++++++++++++ .../class_nv_1_1_blast_1_1_i_mesh_file_reader.png | Bin 0 -> 558 bytes ...v_1_1_blast_1_1_i_mesh_file_writer-members.html | 34 ++ .../class_nv_1_1_blast_1_1_i_mesh_file_writer.html | 169 ++++++ ...lass_nv_1_1_blast_1_1_index_d_list-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_index_d_list.html | 2 +- ...ass_nv_1_1_blast_1_1_iterator_base-members.html | 2 +- .../class_nv_1_1_blast_1_1_iterator_base.html | 2 +- ..._blast_1_1_json_collision_exporter-members.html | 32 ++ ...s_nv_1_1_blast_1_1_json_collision_exporter.html | 114 ++++ .../class_nv_1_1_blast_1_1_l_list_it-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_l_list_it.html | 2 +- .../files/class_nv_1_1_blast_1_1_mesh-members.html | 36 +- .../files/class_nv_1_1_blast_1_1_mesh.html | 351 +++++++------ ...lass_nv_1_1_blast_1_1_mesh_cleaner-members.html | 33 ++ .../files/class_nv_1_1_blast_1_1_mesh_cleaner.html | 113 ++++ ...nv_1_1_blast_1_1_profiler_callback-members.html | 33 ++ .../class_nv_1_1_blast_1_1_profiler_callback.html | 122 +++++ .../class_nv_1_1_blast_1_1_profiler_callback.png | Bin 0 -> 586 bytes ..._1_blast_1_1_random_generator_base-members.html | 2 +- ...ass_nv_1_1_blast_1_1_random_generator_base.html | 2 +- .../files/class_nv_1_1_blast_1_1_time-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_time.html | 2 +- .../class_nv_1_1_blast_1_1_tk_actor-members.html | 3 +- .../files/class_nv_1_1_blast_1_1_tk_actor.html | 26 +- .../class_nv_1_1_blast_1_1_tk_asset-members.html | 5 +- .../files/class_nv_1_1_blast_1_1_tk_asset.html | 11 +- .../files/class_nv_1_1_blast_1_1_tk_asset.png | Bin 788 -> 626 bytes ...nv_1_1_blast_1_1_tk_event_listener-members.html | 2 +- .../class_nv_1_1_blast_1_1_tk_event_listener.html | 2 +- .../class_nv_1_1_blast_1_1_tk_family-members.html | 5 +- .../files/class_nv_1_1_blast_1_1_tk_family.html | 9 +- .../files/class_nv_1_1_blast_1_1_tk_family.png | Bin 796 -> 634 bytes ...lass_nv_1_1_blast_1_1_tk_framework-members.html | 8 +- .../files/class_nv_1_1_blast_1_1_tk_framework.html | 117 +---- .../class_nv_1_1_blast_1_1_tk_group-members.html | 12 +- .../files/class_nv_1_1_blast_1_1_tk_group.html | 145 ++++- ...s_nv_1_1_blast_1_1_tk_group_worker-members.html | 31 ++ .../class_nv_1_1_blast_1_1_tk_group_worker.html | 67 +++ ...s_nv_1_1_blast_1_1_tk_identifiable-members.html | 3 +- .../class_nv_1_1_blast_1_1_tk_identifiable.html | 30 +- .../class_nv_1_1_blast_1_1_tk_identifiable.png | Bin 1308 -> 1085 bytes .../class_nv_1_1_blast_1_1_tk_joint-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_tk_joint.html | 2 +- .../class_nv_1_1_blast_1_1_tk_object-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_tk_object.html | 15 +- .../files/class_nv_1_1_blast_1_1_tk_object.png | Bin 1566 -> 1235 bytes ...s_nv_1_1_blast_1_1_tk_serializable-members.html | 39 -- .../class_nv_1_1_blast_1_1_tk_serializable.html | 103 ---- .../class_nv_1_1_blast_1_1_tk_serializable.png | Bin 1165 -> 0 bytes .../class_nv_1_1_blast_1_1_tk_type-members.html | 2 +- .../files/class_nv_1_1_blast_1_1_tk_type.html | 2 +- ..._blast_1_1_voronoi_sites_generator-members.html | 26 +- ...s_nv_1_1_blast_1_1_voronoi_sites_generator.html | 170 +++--- docs/api_docs/files/classes.html | 36 +- docs/api_docs/files/copyrights_8txt.html | 2 +- docs/api_docs/files/data__converter_8txt.html | 32 -- docs/api_docs/files/definitions_8txt.html | 2 +- docs/api_docs/files/ext__assetutils_8txt.html | 32 ++ docs/api_docs/files/ext__authoring_8txt.html | 2 +- docs/api_docs/files/ext__converterll_8txt.html | 32 -- docs/api_docs/files/ext__exporter_8txt.html | 32 ++ docs/api_docs/files/ext__import_8txt.html | 2 +- docs/api_docs/files/ext__materials_8txt.html | 32 -- docs/api_docs/files/ext__physx_8txt.html | 2 +- docs/api_docs/files/ext__pxserialization_8txt.html | 32 ++ docs/api_docs/files/ext__serialization_8txt.html | 2 +- docs/api_docs/files/ext__shaders_8txt.html | 32 ++ docs/api_docs/files/ext__stress_8txt.html | 32 ++ docs/api_docs/files/ext__tkserialization_8txt.html | 32 ++ docs/api_docs/files/files.html | 30 +- docs/api_docs/files/functions.html | 53 +- docs/api_docs/files/functions_0x62.html | 21 +- docs/api_docs/files/functions_0x63.html | 82 ++- docs/api_docs/files/functions_0x64.html | 38 +- docs/api_docs/files/functions_0x65.html | 45 +- docs/api_docs/files/functions_0x66.html | 21 +- docs/api_docs/files/functions_0x67.html | 128 +++-- docs/api_docs/files/functions_0x68.html | 14 +- docs/api_docs/files/functions_0x69.html | 32 +- docs/api_docs/files/functions_0x6a.html | 5 +- docs/api_docs/files/functions_0x6c.html | 13 +- docs/api_docs/files/functions_0x6d.html | 53 +- docs/api_docs/files/functions_0x6e.html | 23 +- docs/api_docs/files/functions_0x6f.html | 3 +- docs/api_docs/files/functions_0x70.html | 38 +- docs/api_docs/files/functions_0x71.html | 5 +- docs/api_docs/files/functions_0x72.html | 54 +- docs/api_docs/files/functions_0x73.html | 76 ++- docs/api_docs/files/functions_0x74.html | 32 +- docs/api_docs/files/functions_0x75.html | 36 +- docs/api_docs/files/functions_0x76.html | 16 +- docs/api_docs/files/functions_0x77.html | 13 +- docs/api_docs/files/functions_0x78.html | 11 +- docs/api_docs/files/functions_0x79.html | 11 +- docs/api_docs/files/functions_0x7a.html | 15 +- docs/api_docs/files/functions_0x7e.html | 27 +- docs/api_docs/files/functions_enum.html | 14 +- docs/api_docs/files/functions_eval.html | 64 ++- docs/api_docs/files/functions_func.html | 33 +- docs/api_docs/files/functions_func_0x62.html | 18 +- docs/api_docs/files/functions_func_0x63.html | 44 +- docs/api_docs/files/functions_func_0x64.html | 20 +- docs/api_docs/files/functions_func_0x65.html | 12 +- docs/api_docs/files/functions_func_0x66.html | 16 +- docs/api_docs/files/functions_func_0x67.html | 132 +++-- docs/api_docs/files/functions_func_0x69.html | 24 +- docs/api_docs/files/functions_func_0x6a.html | 71 +++ docs/api_docs/files/functions_func_0x6c.html | 10 +- docs/api_docs/files/functions_func_0x6d.html | 67 --- docs/api_docs/files/functions_func_0x6e.html | 75 +++ docs/api_docs/files/functions_func_0x6f.html | 8 +- docs/api_docs/files/functions_func_0x70.html | 14 +- docs/api_docs/files/functions_func_0x72.html | 51 +- docs/api_docs/files/functions_func_0x73.html | 57 +- docs/api_docs/files/functions_func_0x74.html | 14 +- docs/api_docs/files/functions_func_0x75.html | 13 +- docs/api_docs/files/functions_func_0x76.html | 12 +- docs/api_docs/files/functions_func_0x77.html | 73 +++ docs/api_docs/files/functions_func_0x7a.html | 75 +++ docs/api_docs/files/functions_func_0x7e.html | 32 +- docs/api_docs/files/functions_rela.html | 3 +- docs/api_docs/files/functions_type.html | 49 ++ docs/api_docs/files/functions_vars.html | 17 +- docs/api_docs/files/functions_vars_0x62.html | 16 +- docs/api_docs/files/functions_vars_0x63.html | 41 +- docs/api_docs/files/functions_vars_0x64.html | 21 +- docs/api_docs/files/functions_vars_0x65.html | 6 +- docs/api_docs/files/functions_vars_0x66.html | 10 +- docs/api_docs/files/functions_vars_0x67.html | 11 +- docs/api_docs/files/functions_vars_0x68.html | 13 +- docs/api_docs/files/functions_vars_0x69.html | 8 +- docs/api_docs/files/functions_vars_0x6a.html | 4 +- docs/api_docs/files/functions_vars_0x6c.html | 77 +++ docs/api_docs/files/functions_vars_0x6d.html | 50 +- docs/api_docs/files/functions_vars_0x6e.html | 14 +- docs/api_docs/files/functions_vars_0x6f.html | 4 +- docs/api_docs/files/functions_vars_0x70.html | 33 +- docs/api_docs/files/functions_vars_0x71.html | 6 +- docs/api_docs/files/functions_vars_0x72.html | 4 +- docs/api_docs/files/functions_vars_0x73.html | 22 +- docs/api_docs/files/functions_vars_0x74.html | 14 +- docs/api_docs/files/functions_vars_0x75.html | 29 +- docs/api_docs/files/functions_vars_0x76.html | 4 +- docs/api_docs/files/functions_vars_0x77.html | 10 +- docs/api_docs/files/functions_vars_0x78.html | 12 +- docs/api_docs/files/functions_vars_0x79.html | 12 +- docs/api_docs/files/functions_vars_0x7a.html | 10 +- docs/api_docs/files/globals.html | 194 ++++--- docs/api_docs/files/globals_defs.html | 73 ++- docs/api_docs/files/globals_func.html | 133 +++-- docs/api_docs/files/globals_type.html | 2 +- docs/api_docs/files/hierarchy.html | 63 ++- docs/api_docs/files/index.html | 2 +- docs/api_docs/files/introduction_8txt.html | 2 +- docs/api_docs/files/legacy__converter_8txt.html | 32 ++ docs/api_docs/files/main.html | 4 +- docs/api_docs/files/namespace_nv.html | 8 +- docs/api_docs/files/namespace_nv_1_1_blast.html | 517 ++++++------------ .../namespace_nv_1_1_blast_1_1_apex_importer.html | 2 +- .../files/namespace_nv_1_1_blast_1_1_vec_math.html | 55 +- docs/api_docs/files/namespacemembers.html | 26 +- docs/api_docs/files/namespacemembers_func.html | 26 +- docs/api_docs/files/namespacemembers_type.html | 2 +- docs/api_docs/files/namespacenvidia.html | 2 +- docs/api_docs/files/namespacenvidia_1_1apex.html | 2 +- docs/api_docs/files/namespacephysx.html | 2 +- ...namespacephysx_1_1general___px_i_o_stream2.html | 2 +- docs/api_docs/files/namespaces.html | 2 +- docs/api_docs/files/pageauthoring.html | 2 +- docs/api_docs/files/pageconverter.html | 37 +- docs/api_docs/files/pagecopyrights.html | 31 +- docs/api_docs/files/pagedefinitions.html | 2 +- docs/api_docs/files/pageextapeximport.html | 40 -- docs/api_docs/files/pageextapi.html | 31 +- docs/api_docs/files/pageextassetutils.html | 88 ++++ docs/api_docs/files/pageextauthoring.html | 32 +- docs/api_docs/files/pageextconverterll.html | 51 -- docs/api_docs/files/pageextexporter.html | 41 ++ docs/api_docs/files/pageextimport.html | 41 ++ docs/api_docs/files/pageextphysx.html | 81 ++- docs/api_docs/files/pageextpxserialization.html | 54 ++ docs/api_docs/files/pageextserialization.html | 128 ++++- docs/api_docs/files/pageextshaders.html | 14 +- docs/api_docs/files/pageextstress.html | 111 ++++ docs/api_docs/files/pageexttkserialization.html | 52 ++ docs/api_docs/files/pageglobalsapi.html | 79 +++ docs/api_docs/files/pagehlapi.html | 343 ++++++------ docs/api_docs/files/pageimporter.html | 2 +- docs/api_docs/files/pageintroduction.html | 11 +- docs/api_docs/files/pagellapi.html | 256 ++++----- docs/api_docs/files/pagereleasenotes.html | 133 ++++- docs/api_docs/files/pages.html | 2 +- docs/api_docs/files/pagesampleassetviewer.html | 6 +- docs/api_docs/files/pagesamples.html | 2 +- docs/api_docs/files/pagetools.html | 17 +- docs/api_docs/files/pageusersguide.html | 3 +- docs/api_docs/files/release__notes_8txt.html | 2 +- .../api_docs/files/sample__asset__viewer_8txt.html | 2 +- docs/api_docs/files/samples_8txt.html | 2 +- ..._importer_1_1_apex_importer_config-members.html | 2 +- ...1_1_apex_importer_1_1_apex_importer_config.html | 2 +- .../struct_nv_1_1_blast_1_1_array-members.html | 31 ++ .../files/struct_nv_1_1_blast_1_1_array.html | 66 +++ ..._nv_1_1_blast_1_1_authoring_result-members.html | 47 ++ .../struct_nv_1_1_blast_1_1_authoring_result.html | 347 ++++++++++++ ...1_blast_1_1_bond_generation_config-members.html | 2 +- ...ct_nv_1_1_blast_1_1_bond_generation_config.html | 2 +- ...struct_nv_1_1_blast_1_1_chunk_info-members.html | 2 +- .../files/struct_nv_1_1_blast_1_1_chunk_info.html | 2 +- .../struct_nv_1_1_blast_1_1_collision_hull.html | 6 +- ..._1_collision_hull_1_1_hull_polygon-members.html | 2 +- ..._blast_1_1_collision_hull_1_1_hull_polygon.html | 6 +- .../struct_nv_1_1_blast_1_1_d_link-members.html | 2 +- .../files/struct_nv_1_1_blast_1_1_d_link.html | 2 +- .../struct_nv_1_1_blast_1_1_edge-members.html | 2 +- .../files/struct_nv_1_1_blast_1_1_edge.html | 2 +- ...struct_nv_1_1_blast_1_1_error_code-members.html | 41 ++ .../files/struct_nv_1_1_blast_1_1_error_code.html | 90 ++++ ...v_1_1_blast_1_1_exporter_mesh_data-members.html | 46 ++ ...struct_nv_1_1_blast_1_1_exporter_mesh_data.html | 314 +++++++++++ ...ct_nv_1_1_blast_1_1_ext_force_mode-members.html | 33 ++ .../struct_nv_1_1_blast_1_1_ext_force_mode.html | 72 +++ ..._1_1_blast_1_1_ext_impact_settings-members.html | 9 +- ...truct_nv_1_1_blast_1_1_ext_impact_settings.html | 120 ++++- ..._nv_1_1_blast_1_1_ext_profile_data-members.html | 32 ++ .../struct_nv_1_1_blast_1_1_ext_profile_data.html | 76 +++ ...ast_1_1_ext_px_actor_desc_template-members.html | 2 +- ...v_1_1_blast_1_1_ext_px_actor_desc_template.html | 2 +- ...nv_1_1_blast_1_1_ext_px_asset_desc-members.html | 2 +- .../struct_nv_1_1_blast_1_1_ext_px_asset_desc.html | 2 +- ...1_ext_px_asset_desc_1_1_chunk_desc-members.html | 2 +- ...blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html | 2 +- ...xt_px_asset_desc_1_1_subchunk_desc-members.html | 2 +- ...st_1_1_ext_px_asset_desc_1_1_subchunk_desc.html | 2 +- ...ruct_nv_1_1_blast_1_1_ext_px_chunk-members.html | 2 +- .../struct_nv_1_1_blast_1_1_ext_px_chunk.html | 2 +- ...v_1_1_blast_1_1_ext_px_family_desc-members.html | 4 +- ...struct_nv_1_1_blast_1_1_ext_px_family_desc.html | 12 +- ...1_blast_1_1_ext_px_object_type_i_d-members.html | 32 ++ ...ct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html | 64 +++ ...ast_1_1_ext_px_shape_desc_template-members.html | 2 +- ...v_1_1_blast_1_1_ext_px_shape_desc_template.html | 2 +- ..._1_blast_1_1_ext_px_spawn_settings-members.html | 2 +- ...uct_nv_1_1_blast_1_1_ext_px_spawn_settings.html | 2 +- ...t_nv_1_1_blast_1_1_ext_px_subchunk-members.html | 2 +- .../struct_nv_1_1_blast_1_1_ext_px_subchunk.html | 2 +- ...ext_serialization_1_1_encoding_i_d-members.html | 33 ++ ...ast_1_1_ext_serialization_1_1_encoding_i_d.html | 66 +++ ...ext_stress_solver_1_1_debug_buffer-members.html | 32 ++ ...ast_1_1_ext_stress_solver_1_1_debug_buffer.html | 77 +++ ...1_ext_stress_solver_1_1_debug_line-members.html | 35 ++ ...blast_1_1_ext_stress_solver_1_1_debug_line.html | 150 ++++++ ...ast_1_1_ext_stress_solver_settings-members.html | 3 +- ...v_1_1_blast_1_1_ext_stress_solver_settings.html | 28 +- ...ct_nv_1_1_blast_1_1_ext_sync_event-members.html | 2 +- .../struct_nv_1_1_blast_1_1_ext_sync_event.html | 2 +- ...ast_1_1_ext_sync_event_family_sync-members.html | 2 +- ...v_1_1_blast_1_1_ext_sync_event_family_sync.html | 2 +- ..._blast_1_1_ext_sync_event_fracture-members.html | 2 +- ...t_nv_1_1_blast_1_1_ext_sync_event_fracture.html | 2 +- ..._blast_1_1_ext_sync_event_instance-members.html | 2 +- ...t_nv_1_1_blast_1_1_ext_sync_event_instance.html | 2 +- ...st_1_1_ext_sync_event_physics_sync-members.html | 2 +- ..._1_1_blast_1_1_ext_sync_event_physics_sync.html | 2 +- ..._event_physics_sync_1_1_actor_data-members.html | 2 +- ...ext_sync_event_physics_sync_1_1_actor_data.html | 2 +- ..._1_1_blast_1_1_ext_sync_event_type-members.html | 2 +- ...truct_nv_1_1_blast_1_1_ext_sync_event_type.html | 2 +- .../struct_nv_1_1_blast_1_1_facet-members.html | 6 +- .../files/struct_nv_1_1_blast_1_1_facet.html | 54 +- .../struct_nv_1_1_blast_1_1_hash_map-members.html | 31 ++ .../files/struct_nv_1_1_blast_1_1_hash_map.html | 67 +++ .../struct_nv_1_1_blast_1_1_hash_set-members.html | 31 ++ .../files/struct_nv_1_1_blast_1_1_hash_set.html | 66 +++ ...ruct_nv_1_1_blast_1_1_index_d_link-members.html | 2 +- .../struct_nv_1_1_blast_1_1_index_d_link.html | 2 +- ...ruct_nv_1_1_blast_1_1_inline_array-members.html | 31 ++ .../struct_nv_1_1_blast_1_1_inline_array.html | 68 +++ .../struct_nv_1_1_blast_1_1_less-members.html | 2 +- .../files/struct_nv_1_1_blast_1_1_less.html | 2 +- ...v_1_1_blast_1_1_ll_object_type_i_d-members.html | 33 ++ ...struct_nv_1_1_blast_1_1_ll_object_type_i_d.html | 66 +++ ..._1_1_blast_1_1_plane_chunk_indexer-members.html | 2 +- ...truct_nv_1_1_blast_1_1_plane_chunk_indexer.html | 2 +- ...t_nv_1_1_blast_1_1_profiler_detail-members.html | 34 ++ .../struct_nv_1_1_blast_1_1_profiler_detail.html | 68 +++ ..._1_blast_1_1_slicing_configuration-members.html | 4 +- ...uct_nv_1_1_blast_1_1_slicing_configuration.html | 83 +-- ...uct_nv_1_1_blast_1_1_tk_actor_data-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_actor_data.html | 2 +- ...uct_nv_1_1_blast_1_1_tk_actor_desc-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_actor_desc.html | 2 +- ...uct_nv_1_1_blast_1_1_tk_asset_desc-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_asset_desc.html | 2 +- ..._1_1_blast_1_1_tk_asset_joint_desc-members.html | 2 +- ...truct_nv_1_1_blast_1_1_tk_asset_joint_desc.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_event-members.html | 2 +- .../files/struct_nv_1_1_blast_1_1_tk_event.html | 2 +- ...1_1_blast_1_1_tk_fracture_commands-members.html | 2 +- ...ruct_nv_1_1_blast_1_1_tk_fracture_commands.html | 2 +- ...v_1_1_blast_1_1_tk_fracture_events-members.html | 2 +- ...struct_nv_1_1_blast_1_1_tk_fracture_events.html | 2 +- ...nv_1_1_blast_1_1_tk_framework_desc-members.html | 32 -- .../struct_nv_1_1_blast_1_1_tk_framework_desc.html | 84 --- ...uct_nv_1_1_blast_1_1_tk_group_desc-members.html | 4 +- .../struct_nv_1_1_blast_1_1_tk_group_desc.html | 14 +- ...ct_nv_1_1_blast_1_1_tk_group_stats-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_group_stats.html | 2 +- ...uct_nv_1_1_blast_1_1_tk_joint_data-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_joint_data.html | 2 +- ...uct_nv_1_1_blast_1_1_tk_joint_desc-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_joint_desc.html | 2 +- ..._1_blast_1_1_tk_joint_update_event-members.html | 2 +- ...uct_nv_1_1_blast_1_1_tk_joint_update_event.html | 2 +- ...v_1_1_blast_1_1_tk_object_type_i_d-members.html | 32 ++ ...struct_nv_1_1_blast_1_1_tk_object_type_i_d.html | 64 +++ ...ct_nv_1_1_blast_1_1_tk_split_event-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_split_event.html | 2 +- ...uct_nv_1_1_blast_1_1_tk_type_index-members.html | 2 +- .../struct_nv_1_1_blast_1_1_tk_type_index.html | 2 +- .../struct_nv_1_1_blast_1_1_triangle-members.html | 6 +- .../files/struct_nv_1_1_blast_1_1_triangle.html | 42 +- ..._nv_1_1_blast_1_1_triangle_indexed-members.html | 7 +- .../struct_nv_1_1_blast_1_1_triangle_indexed.html | 64 ++- .../struct_nv_1_1_blast_1_1_vertex-members.html | 2 +- .../files/struct_nv_1_1_blast_1_1_vertex.html | 2 +- docs/api_docs/files/struct_nv_blast_actor.html | 2 +- .../files/struct_nv_blast_actor_desc-members.html | 2 +- .../api_docs/files/struct_nv_blast_actor_desc.html | 4 +- .../struct_nv_blast_actor_split_event-members.html | 2 +- .../files/struct_nv_blast_actor_split_event.html | 2 +- docs/api_docs/files/struct_nv_blast_asset.html | 4 +- .../struct_nv_blast_asset_data_format-members.html | 34 -- .../files/struct_nv_blast_asset_data_format.html | 66 --- .../files/struct_nv_blast_asset_desc-members.html | 2 +- .../api_docs/files/struct_nv_blast_asset_desc.html | 2 +- .../files/struct_nv_blast_bond-members.html | 2 +- docs/api_docs/files/struct_nv_blast_bond.html | 4 +- .../files/struct_nv_blast_bond_desc-members.html | 2 +- docs/api_docs/files/struct_nv_blast_bond_desc.html | 13 +- docs/api_docs/files/struct_nv_blast_bond_desc.png | Bin 0 -> 566 bytes ...struct_nv_blast_bond_fracture_data-members.html | 2 +- .../files/struct_nv_blast_bond_fracture_data.html | 2 +- .../files/struct_nv_blast_chunk-members.html | 2 +- docs/api_docs/files/struct_nv_blast_chunk.html | 2 +- .../files/struct_nv_blast_chunk_desc-members.html | 2 +- .../api_docs/files/struct_nv_blast_chunk_desc.html | 2 +- ...truct_nv_blast_chunk_fracture_data-members.html | 2 +- .../files/struct_nv_blast_chunk_fracture_data.html | 2 +- .../struct_nv_blast_damage_program-members.html | 2 +- .../files/struct_nv_blast_damage_program.html | 2 +- .../files/struct_nv_blast_data_block-members.html | 2 +- .../api_docs/files/struct_nv_blast_data_block.html | 4 +- ...nv_blast_ext_asset_utils_bond_desc-members.html | 33 ++ .../struct_nv_blast_ext_asset_utils_bond_desc.html | 71 +++ .../struct_nv_blast_ext_asset_utils_bond_desc.png | Bin 0 -> 558 bytes .../struct_nv_blast_ext_material-members.html | 12 +- .../files/struct_nv_blast_ext_material.html | 76 +-- ...ct_nv_blast_ext_radial_damage_desc-members.html | 4 +- .../struct_nv_blast_ext_radial_damage_desc.html | 12 +- ...ast_ext_segment_radial_damage_desc-members.html | 35 ++ ...ct_nv_blast_ext_segment_radial_damage_desc.html | 141 +++++ ...uct_nv_blast_ext_shear_damage_desc-members.html | 7 +- .../struct_nv_blast_ext_shear_damage_desc.html | 78 ++- docs/api_docs/files/struct_nv_blast_family.html | 2 +- ...struct_nv_blast_family_data_format-members.html | 34 -- .../files/struct_nv_blast_family_data_format.html | 66 --- .../struct_nv_blast_fracture_buffers-members.html | 2 +- .../files/struct_nv_blast_fracture_buffers.html | 2 +- ...struct_nv_blast_graph_shader_actor-members.html | 4 +- .../files/struct_nv_blast_graph_shader_actor.html | 42 +- .../files/struct_nv_blast_i_d-members.html | 2 +- docs/api_docs/files/struct_nv_blast_i_d.html | 2 +- .../files/struct_nv_blast_message-members.html | 2 +- docs/api_docs/files/struct_nv_blast_message.html | 2 +- .../struct_nv_blast_profiler_detail-members.html | 34 -- .../files/struct_nv_blast_profiler_detail.html | 65 --- .../struct_nv_blast_program_params-members.html | 2 +- .../files/struct_nv_blast_program_params.html | 2 +- ...uct_nv_blast_subgraph_shader_actor-members.html | 2 +- .../struct_nv_blast_subgraph_shader_actor.html | 2 +- .../struct_nv_blast_support_graph-members.html | 2 +- .../files/struct_nv_blast_support_graph.html | 2 +- .../files/struct_nv_blast_timers-members.html | 2 +- docs/api_docs/files/struct_nv_blast_timers.html | 2 +- .../api_docs/files/struct_nvc_bounds3-members.html | 32 ++ docs/api_docs/files/struct_nvc_bounds3.html | 75 +++ docs/api_docs/files/struct_nvc_mat33-members.html | 33 ++ docs/api_docs/files/struct_nvc_mat33.html | 92 ++++ docs/api_docs/files/struct_nvc_mat34-members.html | 34 ++ docs/api_docs/files/struct_nvc_mat34.html | 109 ++++ docs/api_docs/files/struct_nvc_mat44-members.html | 34 ++ docs/api_docs/files/struct_nvc_mat44.html | 109 ++++ docs/api_docs/files/struct_nvc_plane-members.html | 32 ++ docs/api_docs/files/struct_nvc_plane.html | 75 +++ docs/api_docs/files/struct_nvc_quat-members.html | 34 ++ docs/api_docs/files/struct_nvc_quat.html | 109 ++++ .../files/struct_nvc_transform-members.html | 32 ++ docs/api_docs/files/struct_nvc_transform.html | 75 +++ docs/api_docs/files/struct_nvc_vec2-members.html | 32 ++ docs/api_docs/files/struct_nvc_vec2.html | 75 +++ docs/api_docs/files/struct_nvc_vec2i-members.html | 32 ++ docs/api_docs/files/struct_nvc_vec2i.html | 75 +++ docs/api_docs/files/struct_nvc_vec3-members.html | 33 ++ docs/api_docs/files/struct_nvc_vec3.html | 92 ++++ docs/api_docs/files/struct_nvc_vec3i-members.html | 33 ++ docs/api_docs/files/struct_nvc_vec3i.html | 92 ++++ docs/api_docs/files/struct_nvc_vec4-members.html | 34 ++ docs/api_docs/files/struct_nvc_vec4.html | 109 ++++ docs/api_docs/files/struct_nvc_vec4i-members.html | 34 ++ docs/api_docs/files/struct_nvc_vec4i.html | 109 ++++ docs/api_docs/files/tools_8txt.html | 2 +- docs/api_docs/files/tree.html | 201 +++++-- 621 files changed, 23552 insertions(+), 9688 deletions(-) create mode 100644 docs/api_docs/files/_nv_blast_allocator_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_allocator_8h.html create mode 100644 docs/api_docs/files/_nv_blast_array_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_array_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_asset_utils_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_asset_utils_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_authoring_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_authoring_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html delete mode 100644 docs/api_docs/files/_nv_blast_ext_data_converter_8h-source.html delete mode 100644 docs/api_docs/files/_nv_blast_ext_data_converter_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_exporter_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_exporter_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_ll_serialization_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_ll_serialization_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_px_serialization_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_px_serialization_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_px_task_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_px_task_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_serialization_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_serialization_8h.html delete mode 100644 docs/api_docs/files/_nv_blast_ext_serialization_interface_8h-source.html delete mode 100644 docs/api_docs/files/_nv_blast_ext_serialization_interface_8h.html delete mode 100644 docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h-source.html delete mode 100644 docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h.html create mode 100644 docs/api_docs/files/_nv_blast_ext_tk_serialization_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_ext_tk_serialization_8h.html create mode 100644 docs/api_docs/files/_nv_blast_globals_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_globals_8h.html create mode 100644 docs/api_docs/files/_nv_blast_hash_map_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_hash_map_8h.html create mode 100644 docs/api_docs/files/_nv_blast_hash_set_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_hash_set_8h.html delete mode 100644 docs/api_docs/files/_nv_blast_profiler_internal_8h-source.html delete mode 100644 docs/api_docs/files/_nv_blast_profiler_internal_8h.html create mode 100644 docs/api_docs/files/_nv_blast_px_callbacks_8h-source.html create mode 100644 docs/api_docs/files/_nv_blast_px_callbacks_8h.html delete mode 100644 docs/api_docs/files/_nv_blast_tk_serializable_8h-source.html delete mode 100644 docs/api_docs/files/_nv_blast_tk_serializable_8h.html create mode 100644 docs/api_docs/files/_nv_c_types_8h-source.html create mode 100644 docs/api_docs/files/_nv_c_types_8h.html create mode 100644 docs/api_docs/files/api__globals__users__guide_8txt.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_allocator-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_allocator.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_error_callback-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_error_callback.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_custom_profiler-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_custom_profiler.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_custom_profiler.png create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_group_task_manager-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_group_task_manager.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_px_stress_solver-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_px_stress_solver.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_serialization-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_serialization.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_fbx_file_reader-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_fbx_file_reader.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_fbx_file_reader.png create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_mesh_file_reader-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_mesh_file_reader.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_mesh_file_reader.png create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_mesh_file_writer-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_i_mesh_file_writer.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_json_collision_exporter-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_json_collision_exporter.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_mesh_cleaner-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_mesh_cleaner.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_profiler_callback-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_profiler_callback.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_profiler_callback.png create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_tk_group_worker-members.html create mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_tk_group_worker.html delete mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_tk_serializable-members.html delete mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_tk_serializable.html delete mode 100644 docs/api_docs/files/class_nv_1_1_blast_1_1_tk_serializable.png delete mode 100644 docs/api_docs/files/data__converter_8txt.html create mode 100644 docs/api_docs/files/ext__assetutils_8txt.html delete mode 100644 docs/api_docs/files/ext__converterll_8txt.html create mode 100644 docs/api_docs/files/ext__exporter_8txt.html delete mode 100644 docs/api_docs/files/ext__materials_8txt.html create mode 100644 docs/api_docs/files/ext__pxserialization_8txt.html create mode 100644 docs/api_docs/files/ext__shaders_8txt.html create mode 100644 docs/api_docs/files/ext__stress_8txt.html create mode 100644 docs/api_docs/files/ext__tkserialization_8txt.html create mode 100644 docs/api_docs/files/functions_func_0x6a.html delete mode 100644 docs/api_docs/files/functions_func_0x6d.html create mode 100644 docs/api_docs/files/functions_func_0x6e.html create mode 100644 docs/api_docs/files/functions_func_0x77.html create mode 100644 docs/api_docs/files/functions_func_0x7a.html create mode 100644 docs/api_docs/files/functions_type.html create mode 100644 docs/api_docs/files/functions_vars_0x6c.html create mode 100644 docs/api_docs/files/legacy__converter_8txt.html delete mode 100644 docs/api_docs/files/pageextapeximport.html create mode 100644 docs/api_docs/files/pageextassetutils.html delete mode 100644 docs/api_docs/files/pageextconverterll.html create mode 100644 docs/api_docs/files/pageextexporter.html create mode 100644 docs/api_docs/files/pageextimport.html create mode 100644 docs/api_docs/files/pageextpxserialization.html create mode 100644 docs/api_docs/files/pageextstress.html create mode 100644 docs/api_docs/files/pageexttkserialization.html create mode 100644 docs/api_docs/files/pageglobalsapi.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_array-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_array.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_authoring_result-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_authoring_result.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_error_code-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_error_code.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_exporter_mesh_data-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_exporter_mesh_data.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_force_mode-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_force_mode.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_hash_map-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_hash_map.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_hash_set-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_hash_set.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_inline_array-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_inline_array.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ll_object_type_i_d-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_ll_object_type_i_d.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_profiler_detail-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_profiler_detail.html delete mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_tk_framework_desc-members.html delete mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_tk_framework_desc.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_tk_object_type_i_d-members.html create mode 100644 docs/api_docs/files/struct_nv_1_1_blast_1_1_tk_object_type_i_d.html delete mode 100644 docs/api_docs/files/struct_nv_blast_asset_data_format-members.html delete mode 100644 docs/api_docs/files/struct_nv_blast_asset_data_format.html create mode 100644 docs/api_docs/files/struct_nv_blast_bond_desc.png create mode 100644 docs/api_docs/files/struct_nv_blast_ext_asset_utils_bond_desc-members.html create mode 100644 docs/api_docs/files/struct_nv_blast_ext_asset_utils_bond_desc.html create mode 100644 docs/api_docs/files/struct_nv_blast_ext_asset_utils_bond_desc.png create mode 100644 docs/api_docs/files/struct_nv_blast_ext_segment_radial_damage_desc-members.html create mode 100644 docs/api_docs/files/struct_nv_blast_ext_segment_radial_damage_desc.html delete mode 100644 docs/api_docs/files/struct_nv_blast_family_data_format-members.html delete mode 100644 docs/api_docs/files/struct_nv_blast_family_data_format.html delete mode 100644 docs/api_docs/files/struct_nv_blast_profiler_detail-members.html delete mode 100644 docs/api_docs/files/struct_nv_blast_profiler_detail.html create mode 100644 docs/api_docs/files/struct_nvc_bounds3-members.html create mode 100644 docs/api_docs/files/struct_nvc_bounds3.html create mode 100644 docs/api_docs/files/struct_nvc_mat33-members.html create mode 100644 docs/api_docs/files/struct_nvc_mat33.html create mode 100644 docs/api_docs/files/struct_nvc_mat34-members.html create mode 100644 docs/api_docs/files/struct_nvc_mat34.html create mode 100644 docs/api_docs/files/struct_nvc_mat44-members.html create mode 100644 docs/api_docs/files/struct_nvc_mat44.html create mode 100644 docs/api_docs/files/struct_nvc_plane-members.html create mode 100644 docs/api_docs/files/struct_nvc_plane.html create mode 100644 docs/api_docs/files/struct_nvc_quat-members.html create mode 100644 docs/api_docs/files/struct_nvc_quat.html create mode 100644 docs/api_docs/files/struct_nvc_transform-members.html create mode 100644 docs/api_docs/files/struct_nvc_transform.html create mode 100644 docs/api_docs/files/struct_nvc_vec2-members.html create mode 100644 docs/api_docs/files/struct_nvc_vec2.html create mode 100644 docs/api_docs/files/struct_nvc_vec2i-members.html create mode 100644 docs/api_docs/files/struct_nvc_vec2i.html create mode 100644 docs/api_docs/files/struct_nvc_vec3-members.html create mode 100644 docs/api_docs/files/struct_nvc_vec3.html create mode 100644 docs/api_docs/files/struct_nvc_vec3i-members.html create mode 100644 docs/api_docs/files/struct_nvc_vec3i.html create mode 100644 docs/api_docs/files/struct_nvc_vec4-members.html create mode 100644 docs/api_docs/files/struct_nvc_vec4.html create mode 100644 docs/api_docs/files/struct_nvc_vec4i-members.html create mode 100644 docs/api_docs/files/struct_nvc_vec4i.html (limited to 'docs/api_docs') diff --git a/docs/api_docs/files/_nv_blast_8h-source.html b/docs/api_docs/files/_nv_blast_8h-source.html index f71c021..f6bd425 100644 --- a/docs/api_docs/files/_nv_blast_8h-source.html +++ b/docs/api_docs/files/_nv_blast_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/lowlevel/include/NvBlast.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/lowlevel/include/NvBlast.h Source File @@ -19,230 +19,281 @@
-

sdk/lowlevel/include/NvBlast.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLAST_H
-00012 #define NVBLAST_H
-00013 
-00014 
-00015 #include "NvBlastTypes.h"
-00016 
-00017 
-00019 //  NvBlastAsset functions
-00022 
-00032 NVBLAST_API size_t NvBlastGetAssetMemorySize(const NvBlastAssetDesc* desc, NvBlastLog logFn);
-00033 
+

sdk/lowlevel/include/NvBlast.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLAST_H
+00030 #define NVBLAST_H
+00031 
+00032 
+00033 #include "NvBlastTypes.h"
 00034 
-00044 NVBLAST_API size_t NvBlastGetRequiredScratchForCreateAsset(const NvBlastAssetDesc* desc, NvBlastLog logFn);
-00045 
-00046 
-00071 NVBLAST_API NvBlastAsset* NvBlastCreateAsset(void* mem, const NvBlastAssetDesc* desc, void* scratch, NvBlastLog logFn);
-00072 
-00073 
-00083 NVBLAST_API size_t NvBlastAssetGetFamilyMemorySize(const NvBlastAsset* asset, NvBlastLog logFn);
-00084 
-00085 
-00098 NVBLAST_API NvBlastFamily* NvBlastAssetCreateFamily(void* mem, const NvBlastAsset* asset, NvBlastLog logFn);
-00099 
-00100 
-00109 NVBLAST_API NvBlastID NvBlastAssetGetID(const NvBlastAsset* asset, NvBlastLog logFn);
-00110 
-00111 
-00121 NVBLAST_API bool NvBlastAssetSetID(NvBlastAsset* asset, const NvBlastID* id, NvBlastLog logFn);
-00122 
-00123 
-00132 NVBLAST_API uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset* asset, NvBlastLog logFn);
-00133 
-00134 
-00143 NVBLAST_API uint32_t NvBlastAssetGetSize(const NvBlastAsset* asset, NvBlastLog logFn);
-00144 
-00145 
-00154 NVBLAST_API uint32_t NvBlastAssetGetChunkCount(const NvBlastAsset* asset, NvBlastLog logFn);
-00155 
-00156 
-00165 NVBLAST_API uint32_t NvBlastAssetGetLeafChunkCount(const NvBlastAsset* asset, NvBlastLog logFn);
-00166 
-00167 
-00178 NVBLAST_API uint32_t NvBlastAssetGetFirstSubsupportChunkIndex(const NvBlastAsset* asset, NvBlastLog logFn);
-00179 
-00180 
-00189 NVBLAST_API uint32_t NvBlastAssetGetBondCount(const NvBlastAsset* asset, NvBlastLog logFn);
-00190 
-00191 
-00200 NVBLAST_API const NvBlastSupportGraph NvBlastAssetGetSupportGraph(const NvBlastAsset* asset, NvBlastLog logFn);
-00201 
-00202 
-00213 NVBLAST_API const uint32_t* NvBlastAssetGetChunkToGraphNodeMap(const NvBlastAsset* asset, NvBlastLog logFn);
-00214 
-00215 
-00224 NVBLAST_API const NvBlastChunk* NvBlastAssetGetChunks(const NvBlastAsset* asset, NvBlastLog logFn);
-00225 
-00226 
-00235 NVBLAST_API const NvBlastBond* NvBlastAssetGetBonds(const NvBlastAsset* asset, NvBlastLog logFn);
-00236 
-00237 
-00248 NVBLAST_API uint32_t NvBlastAssetGetActorSerializationSizeUpperBound(const NvBlastAsset* asset, NvBlastLog logFn);
-00249 
-00251 
-00252 
-00254 //  NvBlastAsset helper functions
-00257 
-00274 NVBLAST_API bool NvBlastEnsureAssetExactSupportCoverage(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn);
-00275 
-00276 
-00300 NVBLAST_API bool NvBlastBuildAssetDescChunkReorderMap(uint32_t* chunkReorderMap, const NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn);
-00301 
-00302 
-00319 NVBLAST_API void NvBlastApplyAssetDescChunkReorderMap
-00320 (
-00321     NvBlastChunkDesc* reorderedChunkDescs,
-00322     const NvBlastChunkDesc* chunkDescs,
-00323     uint32_t chunkCount,
-00324     NvBlastBondDesc* bondDescs,
-00325     uint32_t bondCount,
-00326     const uint32_t* chunkReorderMap,
-00327     NvBlastLog logFn
-00328 );
-00329 
-00330 
-00349 NVBLAST_API void NvBlastApplyAssetDescChunkReorderMapInplace(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, NvBlastBondDesc* bondDescs, uint32_t bondCount, const uint32_t* chunkReorderMap, void* scratch, NvBlastLog logFn);
-00350 
-00351 
-00367 NVBLAST_API bool NvBlastReorderAssetDescChunks(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, NvBlastBondDesc* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap, void* scratch, NvBlastLog logFn);
-00368 
-00370 
-00371 
-00373 //  NvBlastFamily functions
-00376 
-00385 NVBLAST_API uint32_t NvBlastFamilyGetFormatVersion(const NvBlastFamily* family, NvBlastLog logFn);
-00386 
-00387 
-00395 NVBLAST_API void NvBlastFamilySetAsset(NvBlastFamily* family, const NvBlastAsset* asset, NvBlastLog logFn);
+00035 
+00037 //  NvBlastAsset functions
+00040 
+00050 NVBLAST_API size_t NvBlastGetAssetMemorySize(const NvBlastAssetDesc* desc, NvBlastLog logFn);
+00051 
+00052 
+00062 NVBLAST_API size_t NvBlastGetRequiredScratchForCreateAsset(const NvBlastAssetDesc* desc, NvBlastLog logFn);
+00063 
+00064 
+00089 NVBLAST_API NvBlastAsset* NvBlastCreateAsset(void* mem, const NvBlastAssetDesc* desc, void* scratch, NvBlastLog logFn);
+00090 
+00091 
+00101 NVBLAST_API size_t NvBlastAssetGetFamilyMemorySize(const NvBlastAsset* asset, NvBlastLog logFn);
+00102 
+00103 
+00116 NVBLAST_API NvBlastFamily* NvBlastAssetCreateFamily(void* mem, const NvBlastAsset* asset, NvBlastLog logFn);
+00117 
+00118 
+00127 NVBLAST_API NvBlastID NvBlastAssetGetID(const NvBlastAsset* asset, NvBlastLog logFn);
+00128 
+00129 
+00139 NVBLAST_API bool NvBlastAssetSetID(NvBlastAsset* asset, const NvBlastID* id, NvBlastLog logFn);
+00140 
+00141 
+00150 NVBLAST_API uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset* asset, NvBlastLog logFn);
+00151 
+00152 
+00161 NVBLAST_API uint32_t NvBlastAssetGetSize(const NvBlastAsset* asset, NvBlastLog logFn);
+00162 
+00163 
+00172 NVBLAST_API uint32_t NvBlastAssetGetChunkCount(const NvBlastAsset* asset, NvBlastLog logFn);
+00173 
+00174 
+00187 NVBLAST_API uint32_t NvBlastAssetGetSupportChunkCount(const NvBlastAsset* asset, NvBlastLog logFn);
+00188 
+00189 
+00198 NVBLAST_API uint32_t NvBlastAssetGetLeafChunkCount(const NvBlastAsset* asset, NvBlastLog logFn);
+00199 
+00200 
+00211 NVBLAST_API uint32_t NvBlastAssetGetFirstSubsupportChunkIndex(const NvBlastAsset* asset, NvBlastLog logFn);
+00212 
+00213 
+00222 NVBLAST_API uint32_t NvBlastAssetGetBondCount(const NvBlastAsset* asset, NvBlastLog logFn);
+00223 
+00224 
+00233 NVBLAST_API const NvBlastSupportGraph NvBlastAssetGetSupportGraph(const NvBlastAsset* asset, NvBlastLog logFn);
+00234 
+00235 
+00246 NVBLAST_API const uint32_t* NvBlastAssetGetChunkToGraphNodeMap(const NvBlastAsset* asset, NvBlastLog logFn);
+00247 
+00248 
+00257 NVBLAST_API const NvBlastChunk* NvBlastAssetGetChunks(const NvBlastAsset* asset, NvBlastLog logFn);
+00258 
+00259 
+00268 NVBLAST_API const NvBlastBond* NvBlastAssetGetBonds(const NvBlastAsset* asset, NvBlastLog logFn);
+00269 
+00270 
+00281 NVBLAST_API uint32_t NvBlastAssetGetActorSerializationSizeUpperBound(const NvBlastAsset* asset, NvBlastLog logFn);
+00282 
+00284 
+00285 
+00287 //  NvBlastAsset helper functions
+00290 
+00307 NVBLAST_API bool NvBlastEnsureAssetExactSupportCoverage(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn);
+00308 
+00309 
+00333 NVBLAST_API bool NvBlastBuildAssetDescChunkReorderMap(uint32_t* chunkReorderMap, const NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn);
+00334 
+00335 
+00353 NVBLAST_API void NvBlastApplyAssetDescChunkReorderMap
+00354 (
+00355     NvBlastChunkDesc* reorderedChunkDescs,
+00356     const NvBlastChunkDesc* chunkDescs,
+00357     uint32_t chunkCount,
+00358     NvBlastBondDesc* bondDescs,
+00359     uint32_t bondCount,
+00360     const uint32_t* chunkReorderMap,
+00361     bool keepBondNormalChunkOrder,
+00362     NvBlastLog logFn
+00363 );
+00364 
+00365 
+00385 NVBLAST_API void NvBlastApplyAssetDescChunkReorderMapInPlace
+00386 (
+00387     NvBlastChunkDesc* chunkDescs,
+00388     uint32_t chunkCount,
+00389     NvBlastBondDesc* bondDescs,
+00390     uint32_t bondCount,
+00391     const uint32_t* chunkReorderMap,
+00392     bool keepBondNormalChunkOrder,
+00393     void* scratch,
+00394     NvBlastLog logFn
+00395 );
 00396 
 00397 
-00406 NVBLAST_API uint32_t NvBlastFamilyGetSize(const NvBlastFamily* family, NvBlastLog logFn);
-00407 
-00408 
-00417 NVBLAST_API NvBlastID NvBlastFamilyGetAssetID(const NvBlastFamily* family, NvBlastLog logFn);
-00418 
-00419 
-00428 NVBLAST_API size_t NvBlastFamilyGetRequiredScratchForCreateFirstActor(const NvBlastFamily* family, NvBlastLog logFn);
-00429 
-00430 
-00441 NVBLAST_API NvBlastActor* NvBlastFamilyCreateFirstActor(NvBlastFamily* family, const NvBlastActorDesc* desc, void* scratch, NvBlastLog logFn);
-00442 
+00414 NVBLAST_API bool NvBlastReorderAssetDescChunks
+00415 (
+00416     NvBlastChunkDesc* chunkDescs,
+00417     uint32_t chunkCount,
+00418     NvBlastBondDesc* bondDescs,
+00419     uint32_t bondCount,
+00420     uint32_t* chunkReorderMap,
+00421     bool keepBondNormalChunkOrder,
+00422     void* scratch,
+00423     NvBlastLog logFn
+00424 );
+00425 
+00427 
+00428 
+00430 //  NvBlastFamily functions
+00433 
+00442 NVBLAST_API uint32_t NvBlastFamilyGetFormatVersion(const NvBlastFamily* family, NvBlastLog logFn);
 00443 
-00452 NVBLAST_API uint32_t NvBlastFamilyGetActorCount(const NvBlastFamily* family, NvBlastLog logFn);
-00453 
+00444 
+00453 NVBLAST_API const NvBlastAsset* NvBlastFamilyGetAsset(const NvBlastFamily* family, NvBlastLog logFn);
 00454 
-00466 NVBLAST_API NvBlastActor* NvBlastFamilyDeserializeActor(NvBlastFamily* family, const void* buffer, NvBlastLog logFn);
-00467 
-00468 
-00479 NVBLAST_API uint32_t NvBlastFamilyGetActors(NvBlastActor** actors, uint32_t actorsSize, const NvBlastFamily* family, NvBlastLog logFn);
-00480 
-00481 
-00491 NVBLAST_API NvBlastActor* NvBlastFamilyGetChunkActor(const NvBlastFamily* family, uint32_t chunkIndex, NvBlastLog logFn);
-00492 
-00493 
-00502 NVBLAST_API uint32_t NvBlastFamilyGetMaxActorCount(const NvBlastFamily* family, NvBlastLog logFn);
-00503 
-00505 
-00506 
-00508 //  NvBlastActor accessor, serialization, and deactivation functions
-00511 
-00520 NVBLAST_API uint32_t NvBlastActorGetVisibleChunkCount(const NvBlastActor* actor, NvBlastLog logFn);
+00455 
+00463 NVBLAST_API void NvBlastFamilySetAsset(NvBlastFamily* family, const NvBlastAsset* asset, NvBlastLog logFn);
+00464 
+00465 
+00474 NVBLAST_API uint32_t NvBlastFamilyGetSize(const NvBlastFamily* family, NvBlastLog logFn);
+00475 
+00476 
+00485 NVBLAST_API NvBlastID NvBlastFamilyGetAssetID(const NvBlastFamily* family, NvBlastLog logFn);
+00486 
+00487 
+00496 NVBLAST_API size_t NvBlastFamilyGetRequiredScratchForCreateFirstActor(const NvBlastFamily* family, NvBlastLog logFn);
+00497 
+00498 
+00509 NVBLAST_API NvBlastActor* NvBlastFamilyCreateFirstActor(NvBlastFamily* family, const NvBlastActorDesc* desc, void* scratch, NvBlastLog logFn);
+00510 
+00511 
+00520 NVBLAST_API uint32_t NvBlastFamilyGetActorCount(const NvBlastFamily* family, NvBlastLog logFn);
 00521 
 00522 
-00533 NVBLAST_API uint32_t NvBlastActorGetVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, const NvBlastActor* actor, NvBlastLog logFn);
-00534 
+00534 NVBLAST_API NvBlastActor* NvBlastFamilyDeserializeActor(NvBlastFamily* family, const void* buffer, NvBlastLog logFn);
 00535 
-00544 NVBLAST_API uint32_t NvBlastActorGetGraphNodeCount(const NvBlastActor* actor, NvBlastLog logFn);
-00545 
-00546 
-00557 NVBLAST_API uint32_t NvBlastActorGetGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, const NvBlastActor* actor, NvBlastLog logFn);
-00558 
-00559 
-00580 NVBLAST_API const float* NvBlastActorGetBondHealths(const NvBlastActor* actor, NvBlastLog logFn);
-00581 
-00582 
-00592 NVBLAST_API uint32_t NvBlastActorGetSerializationSize(const NvBlastActor* actor, NvBlastLog logFn);
-00593 
-00594 
-00605 NVBLAST_API uint32_t NvBlastActorSerialize(void* buffer, uint32_t bufferSize, const NvBlastActor* actor, NvBlastLog logFn);
-00606 
-00607 
-00616 NVBLAST_API NvBlastFamily* NvBlastActorGetFamily(const NvBlastActor* actor, NvBlastLog logFn);
-00617 
-00618 
-00627 NVBLAST_API uint32_t NvBlastActorGetIndex(const NvBlastActor* actor, NvBlastLog logFn);
-00628 
-00629 
-00638 NVBLAST_API bool NvBlastActorDeactivate(NvBlastActor* actor, NvBlastLog logFn);
-00639 
-00641 
-00642 
-00644 //  NvBlastActor damage and fracturing functions
-00647 
-00670 NVBLAST_API void NvBlastActorGenerateFracture
-00671 (
-00672     NvBlastFractureBuffers* commandBuffers,
-00673     const NvBlastActor* actor,
-00674     const NvBlastDamageProgram program, 
-00675     const NvBlastProgramParams* programParams,
-00676     NvBlastLog logFn, 
-00677     NvBlastTimers* timers
-00678 );
-00679 
-00680 
-00711 NVBLAST_API void NvBlastActorApplyFracture
-00712 (
-00713     NvBlastFractureBuffers* eventBuffers,
-00714     NvBlastActor* actor,
-00715     const NvBlastFractureBuffers* commands,
-00716     NvBlastLog logFn,
-00717     NvBlastTimers* timers
-00718 );
-00719 
-00720 
-00734 NVBLAST_API uint32_t NvBlastActorSplit
-00735 (
-00736     NvBlastActorSplitEvent* result, 
-00737     NvBlastActor* actor,
-00738     uint32_t newActorsMaxCount,
-00739     void* scratch,
-00740     NvBlastLog logFn,
-00741     NvBlastTimers* timers
-00742 );
-00743 
-00744 
-00754 NVBLAST_API size_t NvBlastActorGetRequiredScratchForSplit(const NvBlastActor* actor, NvBlastLog logFn);
-00755 
-00756 
-00766 NVBLAST_API uint32_t NvBlastActorGetMaxActorCountForSplit(const NvBlastActor* actor, NvBlastLog logFn);
-00767 
-00768 
-00777 NVBLAST_API bool NvBlastActorCanFracture(const NvBlastActor* actor, NvBlastLog logFn);
-00778 
-00780 
-00781 
-00783 //  NvBlastTimers functions and helpers
-00786 
-00792 NVBLAST_API void NvBlastTimersReset(NvBlastTimers* timers);
-00793 
-00794 
-00802 NVBLAST_API double NvBlastTicksToSeconds(int64_t ticks);
-00803 
-00805 
-00806 
-00807 #endif // ifndef NVBLAST_H
+00536 
+00547 NVBLAST_API uint32_t NvBlastFamilyGetActors(NvBlastActor** actors, uint32_t actorsSize, const NvBlastFamily* family, NvBlastLog logFn);
+00548 
+00549 
+00559 NVBLAST_API NvBlastActor* NvBlastFamilyGetChunkActor(const NvBlastFamily* family, uint32_t chunkIndex, NvBlastLog logFn);
+00560 
+00561 
+00570 NVBLAST_API uint32_t NvBlastFamilyGetMaxActorCount(const NvBlastFamily* family, NvBlastLog logFn);
+00571 
+00573 
+00574 
+00576 //  NvBlastActor accessor, serialization, and deactivation functions
+00579 
+00588 NVBLAST_API uint32_t NvBlastActorGetVisibleChunkCount(const NvBlastActor* actor, NvBlastLog logFn);
+00589 
+00590 
+00601 NVBLAST_API uint32_t NvBlastActorGetVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, const NvBlastActor* actor, NvBlastLog logFn);
+00602 
+00603 
+00612 NVBLAST_API uint32_t NvBlastActorGetGraphNodeCount(const NvBlastActor* actor, NvBlastLog logFn);
+00613 
+00614 
+00625 NVBLAST_API uint32_t NvBlastActorGetGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, const NvBlastActor* actor, NvBlastLog logFn);
+00626 
+00627 
+00648 NVBLAST_API const float* NvBlastActorGetBondHealths(const NvBlastActor* actor, NvBlastLog logFn);
+00649 
+00650 
+00660 NVBLAST_API uint32_t NvBlastActorGetSerializationSize(const NvBlastActor* actor, NvBlastLog logFn);
+00661 
+00662 
+00673 NVBLAST_API uint32_t NvBlastActorSerialize(void* buffer, uint32_t bufferSize, const NvBlastActor* actor, NvBlastLog logFn);
+00674 
+00675 
+00684 NVBLAST_API NvBlastFamily* NvBlastActorGetFamily(const NvBlastActor* actor, NvBlastLog logFn);
+00685 
+00686 
+00695 NVBLAST_API uint32_t NvBlastActorGetIndex(const NvBlastActor* actor, NvBlastLog logFn);
+00696 
+00697 
+00706 NVBLAST_API bool NvBlastActorDeactivate(NvBlastActor* actor, NvBlastLog logFn);
+00707 
+00709 
+00710 
+00712 //  NvBlastActor damage and fracturing functions
+00715 
+00738 NVBLAST_API void NvBlastActorGenerateFracture
+00739 (
+00740     NvBlastFractureBuffers* commandBuffers,
+00741     const NvBlastActor* actor,
+00742     const NvBlastDamageProgram program, 
+00743     const NvBlastProgramParams* programParams,
+00744     NvBlastLog logFn, 
+00745     NvBlastTimers* timers
+00746 );
+00747 
+00748 
+00779 NVBLAST_API void NvBlastActorApplyFracture
+00780 (
+00781     NvBlastFractureBuffers* eventBuffers,
+00782     NvBlastActor* actor,
+00783     const NvBlastFractureBuffers* commands,
+00784     NvBlastLog logFn,
+00785     NvBlastTimers* timers
+00786 );
+00787 
+00788 
+00802 NVBLAST_API uint32_t NvBlastActorSplit
+00803 (
+00804     NvBlastActorSplitEvent* result, 
+00805     NvBlastActor* actor,
+00806     uint32_t newActorsMaxCount,
+00807     void* scratch,
+00808     NvBlastLog logFn,
+00809     NvBlastTimers* timers
+00810 );
+00811 
+00812 
+00822 NVBLAST_API size_t NvBlastActorGetRequiredScratchForSplit(const NvBlastActor* actor, NvBlastLog logFn);
+00823 
+00824 
+00834 NVBLAST_API uint32_t NvBlastActorGetMaxActorCountForSplit(const NvBlastActor* actor, NvBlastLog logFn);
+00835 
+00836 
+00845 NVBLAST_API bool NvBlastActorCanFracture(const NvBlastActor* actor, NvBlastLog logFn);
+00846 
+00847 
+00857 NVBLAST_API bool NvBlastActorIsSplitRequired(const NvBlastActor* actor, NvBlastLog logFn);
+00858 
+00859 
+00863 NVBLAST_API bool NvBlastActorIsBoundToWorld(const NvBlastActor* actor, NvBlastLog logFn);
+00864 
+00866 
+00867 
+00869 //  NvBlastTimers functions and helpers
+00872 
+00878 NVBLAST_API void NvBlastTimersReset(NvBlastTimers* timers);
+00879 
+00880 
+00888 NVBLAST_API double NvBlastTicksToSeconds(int64_t ticks);
+00889 
+00891 
+00892 
+00893 #endif // ifndef NVBLAST_H
 
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool NvBlastActorIsBoundToWorld (const NvBlastActor actor,
NvBlastLog  logFn 
)
+
+
+ +

+

Returns:
true iff this actor contains the "world" support graph node, created when a bond contains the UINT32_MAX value for one of their chunkIndices.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool NvBlastActorIsSplitRequired (const NvBlastActor actor,
NvBlastLog  logFn 
)
+
+
+ +

+Determines if the actor is damaged (was fractured) and split call is required.

+The actor could be damaged by calling NvBlastActorApplyFracture or NvBlastFamilyApplyFracture and NvBlastActorSplit is expected after. This function gives a hint that NvBlastActorSplit will have some work to be done and actor could potentially be split. If actor is not damaged calling NvBlastActorSplit will make no effect.

+

Returns:
true iff split call is required for this actor.
+

@@ -857,7 +927,7 @@ Releases the oldActor and creates its children newActors if necessary.

- +

@@ -897,6 +967,12 @@ Releases the oldActor and creates its children newActors if necessary.

+ + + + + + @@ -924,18 +1000,19 @@ Function applies reorder map on [in]  +
const uint32_t *  chunkReorderMap,
bool  keepBondNormalChunkOrder,
bondDescs Array of bond descriptors of size chunkCount. It will be updated accordingly.
[in] bondCount The number of bond descriptors.
[in] chunkReorderMap Chunk reorder map to use, must be of size chunkCount.
[in] keepBondNormalChunkOrder If true, bond normals will be flipped if their chunk index order was reveresed by the reorder map.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.

- +

- + @@ -964,6 +1041,12 @@ Function applies reorder map on const uint32_t *  + + + + + + @@ -997,6 +1080,7 @@ This overload of function reorders chunks in place.

+
void NvBlastApplyAssetDescChunkReorderMapInplace void NvBlastApplyAssetDescChunkReorderMapInPlace ( NvBlastChunkDesc chunkDescs, chunkReorderMap,
bool  keepBondNormalChunkOrder,
[in] bondDescs Array of bond descriptors of size chunkCount. It will be updated accordingly.
[in] bondCount The number of bond descriptors.
[in] chunkReorderMap Chunk reorder map to use, must be of size chunkCount.
[in] keepBondNormalChunkOrder If true, bond normals will be flipped if their chunk index order was reveresed by the reorder map.
[in] scratch User-supplied scratch storage, must point to chunkCount * sizeof(NvBlastChunkDesc) valid bytes of memory.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
@@ -1378,7 +1462,7 @@ Retrieve the data format version for the given asset

[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL. -

Returns:
the data format version (NvBlastAssetDataFormat).
+
Returns:
the data format version (NvBlastAssetDataFormat).

@@ -1491,6 +1575,43 @@ Retrieve the memory size (in bytes) of the given data asset

Returns:
the memory size of the asset (in bytes).
+ +

+ +

+
+ + + + + + + + + + + + + + + + + + +
uint32_t NvBlastAssetGetSupportChunkCount (const NvBlastAsset asset,
NvBlastLog  logFn 
)
+
+
+ +

+Get the number of support chunks in the given asset. This will equal the number of graph nodes in NvBlastSupportGraph::nodeCount returned by NvBlastAssetGetSupportGraph only if no extra "world" node was created due to bonds defined between support chunks and the world. If such bonds were created, then there is an extra graph node representing the world, and this function will return NvBlastSupportGraph::nodeCount - 1.

+

Parameters:
+ + + +
[in] asset The asset.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
+
+
Returns:
the number of chunks in the asset.
+

@@ -1620,7 +1741,7 @@ Set an asset's ID

Build chunk reorder map.

NvBlastCreateAsset function requires NvBlastChunkDesc array to be in correct oder:

-1. Root chunks (chunks with invalid parent index) must be first in the asset's chunk list. 2. Chunks in the asset should be arranged such that sibling chunks (chunks with the same parent) are contiguous. 3. Chunks are also should be arranged such that upper-support chunks (support chunks and their parent chunks) should go first in chunk list.

+1. Root chunks (chunks with invalid parent index) must be first in the asset's chunk list. 2. Chunks in the asset must be arranged such that sibling chunks (chunks with the same parent) are contiguous. 3. Chunks must be arranged such that upper-support chunks (support chunks and their parent chunks) go first in chunk list.

This function builds chunk reorder map which can be used to order chunk descs. Reordering chunk's descriptors according to generated map places them in correct order for NvBlastCreateAsset to succeed.

Iff chunks are already ordered correctly, function returns 'true' and identity chunk reorder map. Otherwise 'false' is returned.

Parameters:
@@ -1925,6 +2046,43 @@ Retrieve the active actors associated with the given family.

Returns:
the number of actor pointers written to actors. This will not exceed actorsSize.
+ +

+ +

+
+ + + + + + + + + + + + + + + + + + +
const NvBlastAsset* NvBlastFamilyGetAsset (const NvBlastFamily family,
NvBlastLog  logFn 
)
+
+
+ +

+Retrieve the asset of the given family.

+

Parameters:
+ + + +
[in] family The family.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
+
+
Returns:
pointer to the asset associated with the family.
+

@@ -2273,7 +2431,7 @@ Returns the number of bytes of scratch memory that the user must supply to NvBla

- +

@@ -2307,6 +2465,12 @@ Returns the number of bytes of scratch memory that the user must supply to NvBla + + + + + + @@ -2338,6 +2502,7 @@ Function basically calls NvBlastBuildAssetDescChunkReorderMap and NvBlastApplyAs +
uint32_t *  chunkReorderMap,
bool  keepBondNormalChunkOrder,
[in] bondDescs Array of bond descriptors of size chunkCount. It will be updated accordingly.
[in] bondCount The number of bond descriptors.
[in] chunkReorderMap Chunk reorder map to fill, must be of size chunkCount.
[in] keepBondNormalChunkOrder If true, bond normals will be flipped if their chunk index order was reveresed by the reorder map.
[in] scratch User-supplied scratch storage, must point to chunkCount * sizeof(NvBlastChunkDesc) valid bytes of memory.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
diff --git a/docs/api_docs/files/_nv_blast_allocator_8h-source.html b/docs/api_docs/files/_nv_blast_allocator_8h-source.html new file mode 100644 index 0000000..e3beed0 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_allocator_8h-source.html @@ -0,0 +1,90 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/globals/include/NvBlastAllocator.h Source File + + + + + + + +

sdk/globals/include/NvBlastAllocator.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTALLOCATOR_H
+00030 #define NVBLASTALLOCATOR_H
+00031 
+00032 #include "NvBlastGlobals.h"
+00033 
+00038 namespace Nv
+00039 {
+00040 namespace Blast
+00041 {
+00042 
+00046 class Allocator
+00047 {
+00048 public:
+00049     Allocator(const char* = 0)
+00050     {
+00051     }
+00052 
+00053     void* allocate(size_t size, const char* filename, int line)
+00054     {
+00055         return NvBlastGlobalGetAllocatorCallback()->allocate(size, nullptr, filename, line);
+00056     }
+00057 
+00058     void deallocate(void* ptr)
+00059     {
+00060         NvBlastGlobalGetAllocatorCallback()->deallocate(ptr);
+00061     }
+00062 };
+00063 
+00064 
+00065 } // namespace Blast
+00066 } // namespace Nv
+00067 
+00068 
+00069 #endif // #ifndef NVBLASTALLOCATOR_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_allocator_8h.html b/docs/api_docs/files/_nv_blast_allocator_8h.html new file mode 100644 index 0000000..715999f --- /dev/null +++ b/docs/api_docs/files/_nv_blast_allocator_8h.html @@ -0,0 +1,43 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/globals/include/NvBlastAllocator.h File Reference + + + + + + + +
+

sdk/globals/include/NvBlastAllocator.h File Reference

#include "NvBlastGlobals.h"
+ +

+Go to the source code of this file. + + + + + + + + + +

Classes

class  Nv::Blast::Allocator

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_array_8h-source.html b/docs/api_docs/files/_nv_blast_array_8h-source.html new file mode 100644 index 0000000..6246bc7 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_array_8h-source.html @@ -0,0 +1,87 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastArray.h Source File + + + + + + + +

sdk/common/NvBlastArray.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTARRAY_H
+00030 #define NVBLASTARRAY_H
+00031 
+00032 
+00033 #include "NvBlastAllocator.h"
+00034 #include "PsInlineArray.h"
+00035 
+00036 
+00037 namespace Nv
+00038 {
+00039 namespace Blast
+00040 {
+00041 
+00045 template <class T>
+00046 struct Array
+00047 {
+00048     typedef physx::shdfnd::Array<T, Allocator> type;
+00049 };
+00050 
+00051 
+00057 template <class T, uint32_t N>
+00058 struct InlineArray
+00059 {
+00060     typedef physx::shdfnd::InlineArray<T, N, Allocator> type;
+00061 };
+00062 
+00063 } // namespace Blast
+00064 } // namespace Nv
+00065 
+00066 
+00067 #endif // #ifndef NVBLASTARRAY_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_array_8h.html b/docs/api_docs/files/_nv_blast_array_8h.html new file mode 100644 index 0000000..210487a --- /dev/null +++ b/docs/api_docs/files/_nv_blast_array_8h.html @@ -0,0 +1,46 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastArray.h File Reference + + + + + + + +
+

sdk/common/NvBlastArray.h File Reference

#include "NvBlastAllocator.h"
+#include "PsInlineArray.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + +

Classes

struct  Nv::Blast::Array< T >
struct  Nv::Blast::InlineArray< T, N >

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_assert_8h-source.html b/docs/api_docs/files/_nv_blast_assert_8h-source.html index dad9069..1edb4f8 100644 --- a/docs/api_docs/files/_nv_blast_assert_8h-source.html +++ b/docs/api_docs/files/_nv_blast_assert_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/common/NvBlastAssert.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastAssert.h Source File @@ -19,69 +19,87 @@
-

sdk/common/NvBlastAssert.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTASSERT_H
-00012 #define NVBLASTASSERT_H
-00013 
-00014 
-00015 #include "NvBlastPreprocessor.h"
-00016 
-00017 
-00018 #if !NV_ENABLE_ASSERTS
-00019 #define NVBLAST_ASSERT(exp) ((void)0)
-00020 #define NVBLAST_ALWAYS_ASSERT_MESSAGE(exp) ((void)0)
-00021 #define NVBLAST_ASSERT_WITH_MESSAGE(condition, message) ((void)0)
-00022 #else
-00023 #if NV_VC
-00024 #define NVBLAST_CODE_ANALYSIS_ASSUME(exp)                                                                     \
-00025     __analysis_assume(!!(exp)) // This macro will be used to get rid of analysis warning messages if a NVBLAST_ASSERT is used
-00026 // to "guard" illegal mem access, for example.
-00027 #else
-00028 #define NVBLAST_CODE_ANALYSIS_ASSUME(exp)
-00029 #endif
-00030 #define NVBLAST_ASSERT(exp)                                                                                   \
-00031 {                                                                                                             \
-00032     static bool _ignore = false;                                                                              \
-00033     if (!(exp) && !_ignore) NvBlastAssertHandler(#exp, __FILE__, __LINE__, _ignore);                          \
-00034     NVBLAST_CODE_ANALYSIS_ASSUME(exp);                                                                        \
-00035 } ((void)0)
-00036 #define NVBLAST_ALWAYS_ASSERT_MESSAGE(exp)                                                                    \
-00037 {                                                                                                             \
-00038     static bool _ignore = false;                                                                              \
-00039     if(!_ignore)                                                                                              \
-00040     {                                                                                                         \
-00041         NvBlastAssertHandler(exp, __FILE__, __LINE__, _ignore);                                               \
-00042     }                                                                                                         \
-00043 } ((void)0)
-00044 #define NVBLAST_ASSERT_WITH_MESSAGE(exp, message)                                                             \
-00045 {                                                                                                             \
-00046     static bool _ignore = false;                                                                              \
-00047     if (!(exp) && !_ignore) NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore);                       \
-00048     NVBLAST_CODE_ANALYSIS_ASSUME(exp);                                                                        \
-00049 } ((void)0)
-00050 #endif
-00051 
-00052 #define NVBLAST_ALWAYS_ASSERT() NVBLAST_ASSERT(0)
-00053 
-00054 
-00055 extern "C"
-00056 {
-00057 
-00058 NVBLAST_API void NvBlastAssertHandler(const char* expr, const char* file, int line, bool& ignore);
-00059 
-00060 } // extern "C"
-00061 
-00062 
-00063 #endif // #ifndef NVBLASTASSERT_H
+

sdk/common/NvBlastAssert.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTASSERT_H
+00030 #define NVBLASTASSERT_H
+00031 
+00032 
+00033 #include "NvBlastPreprocessor.h"
+00034 
+00035 
+00036 #if !NV_ENABLE_ASSERTS
+00037 #define NVBLAST_ASSERT(exp) ((void)0)
+00038 #define NVBLAST_ALWAYS_ASSERT_MESSAGE(message) ((void)0)
+00039 #define NVBLAST_ASSERT_WITH_MESSAGE(condition, message) ((void)0)
+00040 #else
+00041 #if NV_VC
+00042 #define NVBLAST_CODE_ANALYSIS_ASSUME(exp)                                                                     \
+00043     __analysis_assume(!!(exp)) // This macro will be used to get rid of analysis warning messages if a NVBLAST_ASSERT is used
+00044 // to "guard" illegal mem access, for example.
+00045 #else
+00046 #define NVBLAST_CODE_ANALYSIS_ASSUME(exp)
+00047 #endif
+00048 #define NVBLAST_ASSERT(exp)                                                                                   \
+00049 {                                                                                                             \
+00050     static bool _ignore = false;                                                                              \
+00051     if (!(exp) && !_ignore) NvBlastAssertHandler(#exp, __FILE__, __LINE__, _ignore);                          \
+00052     NVBLAST_CODE_ANALYSIS_ASSUME(exp);                                                                        \
+00053 } ((void)0)
+00054 #define NVBLAST_ALWAYS_ASSERT_MESSAGE(message)                                                                    \
+00055 {                                                                                                             \
+00056     static bool _ignore = false;                                                                              \
+00057     if(!_ignore)                                                                                              \
+00058     {                                                                                                         \
+00059         NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore);                                               \
+00060     }                                                                                                         \
+00061 } ((void)0)
+00062 #define NVBLAST_ASSERT_WITH_MESSAGE(exp, message)                                                             \
+00063 {                                                                                                             \
+00064     static bool _ignore = false;                                                                              \
+00065     if (!(exp) && !_ignore) NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore);                       \
+00066     NVBLAST_CODE_ANALYSIS_ASSUME(exp);                                                                        \
+00067 } ((void)0)
+00068 #endif
+00069 
+00070 #define NVBLAST_ALWAYS_ASSERT() NVBLAST_ASSERT(0)
+00071 
+00072 
+00073 extern "C"
+00074 {
+00075 
+00076 NVBLAST_API void NvBlastAssertHandler(const char* expr, const char* file, int line, bool& ignore);
+00077 
+00078 } // extern "C"
+00079 
+00080 
+00081 #endif // #ifndef NVBLASTASSERT_H
 

- +

- + diff --git a/docs/api_docs/files/_nv_blast_atomic_8h-source.html b/docs/api_docs/files/_nv_blast_atomic_8h-source.html index 6ff139a..bc9c5de 100644 --- a/docs/api_docs/files/_nv_blast_atomic_8h-source.html +++ b/docs/api_docs/files/_nv_blast_atomic_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/common/NvBlastAtomic.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastAtomic.h Source File @@ -19,38 +19,56 @@
-

sdk/common/NvBlastAtomic.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTATOMIC_H
-00012 #define NVBLASTATOMIC_H
-00013 
-00014 #include "NvBlastTypes.h"
-00015 
-00016 
-00017 namespace Nv
-00018 {
-00019 namespace Blast
-00020 {
-00021 
-00022 /* increment the specified location. Return the incremented value */
-00023 int32_t atomicIncrement(volatile int32_t* val);
-00024 
-00025 
-00026 /* decrement the specified location. Return the decremented value */
-00027 int32_t atomicDecrement(volatile int32_t* val);
+

sdk/common/NvBlastAtomic.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
 00028 
-00029 } // namespace Blast
-00030 } // namespace Nv
-00031 
-00032 #endif // #ifndef NVBLASTATOMIC_H
+00029 #ifndef NVBLASTATOMIC_H
+00030 #define NVBLASTATOMIC_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 
+00035 namespace Nv
+00036 {
+00037 namespace Blast
+00038 {
+00039 
+00040 /* increment the specified location. Return the incremented value */
+00041 int32_t atomicIncrement(volatile int32_t* val);
+00042 
+00043 
+00044 /* decrement the specified location. Return the decremented value */
+00045 int32_t atomicDecrement(volatile int32_t* val);
+00046 
+00047 } // namespace Blast
+00048 } // namespace Nv
+00049 
+00050 #endif // #ifndef NVBLASTATOMIC_H
 
-

sdk/common/NvBlastDLink.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTDLINK_H
-00012 #define NVBLASTDLINK_H
-00013 
-00014 
-00015 #include "NvBlastAssert.h"
-00016 #include "NvBlastIndexFns.h"
-00017 
-00018 
-00019 namespace Nv
-00020 {
-00021 namespace Blast
-00022 {
-00023 
-00024 template<typename IndexType>
-00025 struct IndexDLink
-00026 {
-00027     IndexType   m_adj[2];
-00028 };
-00029 
-00030 
-00031 template<typename IndexType>
-00032 class IndexDList
-00033 {
-00034 public:
-00035     void        initLinksSolitary(IndexDLink<IndexType>* links, IndexType linkCount)
-00036     {
-00037         for (IndexType i = 0; i < linkCount; ++i)
-00038         {
-00039             links[i].m_adj[0] = invalidIndex<IndexType>();
-00040             links[i].m_adj[1] = invalidIndex<IndexType>();
-00041         }
-00042     }
-00043 
-00044     void        initLinksChain(IndexDLink<IndexType>* links, IndexType linkCount)
-00045     {
-00046         if (linkCount > 0)
-00047         {
-00048             links[0].m_adj[0] = invalidIndex<IndexType>();
-00049             for (IndexType i = 1; i < linkCount; ++i)
-00050             {
-00051                 links[i - 1].m_adj[1] = i;
-00052                 links[i].m_adj[0] = i - 1;
-00053             }
-00054             links[linkCount - 1].m_adj[1] = invalidIndex<IndexType>();
-00055         }
-00056     }
-00057 
-00058     IndexType   getAdj(IndexDLink<IndexType>* links, IndexType linkIndex, int which)
-00059     {
-00060         return links[linkIndex].m_adj[which & 1];
-00061     }
-00062 
-00063     void        remove(IndexDLink<IndexType>* links, IndexType linkIndex)
-00064     {
-00065         IndexDLink<IndexType>& link = links[linkIndex];
-00066         const IndexType adj0 = link.m_adj[0];
-00067         const IndexType adj1 = link.m_adj[1];
-00068         if (!isInvalidIndex(adj1))
-00069         {
-00070             links[adj1].m_adj[0] = adj0;
-00071             link.m_adj[1] = invalidIndex<IndexType>();
-00072         }
-00073         if (!isInvalidIndex(adj0))
-00074         {
-00075             links[adj0].m_adj[1] = adj1;
-00076             link.m_adj[0] = invalidIndex<IndexType>();
-00077         }
-00078     }
-00079 
-00080     bool        isSolitary(IndexDLink<IndexType>* links, IndexType linkIndex)
-00081     {
-00082         const IndexDLink<IndexType>& link = links[linkIndex];
-00083         return isInvalidIndex(link.m_adj[0]) && isInvalidIndex(link.m_adj[1]);
-00084     }
-00085 
-00086     void        insertListHead(IndexType& listHead, IndexDLink<IndexType>* links, IndexType linkIndex)
-00087     {
-00088         NVBLAST_ASSERT(!isInvalidIndex(linkIndex));
-00089         if (!isInvalidIndex(listHead))
-00090         {
-00091             links[listHead].m_adj[0] = linkIndex;
-00092         }
-00093         links[linkIndex].m_adj[1] = listHead;
-00094         listHead = linkIndex;
-00095     }
-00096 
-00097     IndexType   removeListHead(IndexType& listHead, IndexDLink<IndexType>* links)
-00098     {
-00099         const IndexType linkIndex = listHead;
-00100         if (!isInvalidIndex(linkIndex))
-00101         {
-00102             listHead = links[linkIndex].m_adj[1];
-00103             if (!isInvalidIndex(listHead))
-00104             {
-00105                 links[listHead].m_adj[0] = invalidIndex<IndexType>();
-00106             }
-00107             links[linkIndex].m_adj[1] = invalidIndex<IndexType>();
-00108         }
-00109         return linkIndex;
-00110     }
-00111 
-00112     void        removeFromList(IndexType& listHead, IndexDLink<IndexType>* links, IndexType linkIndex)
-00113     {
-00114         NVBLAST_ASSERT(!isInvalidIndex(linkIndex));
-00115         if (listHead == linkIndex)
-00116         {
-00117             listHead = links[linkIndex].m_adj[1];
-00118         }
-00119         remove(links, linkIndex);
-00120     }
-00121 };
-00122 
-00123 
-00124 struct DLink
-00125 {
-00126     DLink() : m_prev(nullptr), m_next(nullptr) {}
-00127 
-00128     DLink*  getPrev() const
-00129     {
-00130         return m_prev;
-00131     }
-00132 
-00133     DLink*  getNext() const
-00134     {
-00135         return m_next;
-00136     }
-00137 
-00138 private:
-00139     DLink*  m_prev;
-00140     DLink*  m_next;
+

sdk/common/NvBlastDLink.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTDLINK_H
+00030 #define NVBLASTDLINK_H
+00031 
+00032 
+00033 #include "NvBlastAssert.h"
+00034 #include "NvBlastIndexFns.h"
+00035 
+00036 
+00037 namespace Nv
+00038 {
+00039 namespace Blast
+00040 {
+00041 
+00042 template<typename IndexType>
+00043 struct IndexDLink
+00044 {
+00045     IndexType   m_adj[2];
+00046 };
+00047 
+00048 
+00049 template<typename IndexType>
+00050 class IndexDList
+00051 {
+00052 public:
+00053     void        initLinksSolitary(IndexDLink<IndexType>* links, IndexType linkCount)
+00054     {
+00055         for (IndexType i = 0; i < linkCount; ++i)
+00056         {
+00057             links[i].m_adj[0] = invalidIndex<IndexType>();
+00058             links[i].m_adj[1] = invalidIndex<IndexType>();
+00059         }
+00060     }
+00061 
+00062     void        initLinksChain(IndexDLink<IndexType>* links, IndexType linkCount)
+00063     {
+00064         if (linkCount > 0)
+00065         {
+00066             links[0].m_adj[0] = invalidIndex<IndexType>();
+00067             for (IndexType i = 1; i < linkCount; ++i)
+00068             {
+00069                 links[i - 1].m_adj[1] = i;
+00070                 links[i].m_adj[0] = i - 1;
+00071             }
+00072             links[linkCount - 1].m_adj[1] = invalidIndex<IndexType>();
+00073         }
+00074     }
+00075 
+00076     IndexType   getAdj(IndexDLink<IndexType>* links, IndexType linkIndex, int which)
+00077     {
+00078         return links[linkIndex].m_adj[which & 1];
+00079     }
+00080 
+00081     void        remove(IndexDLink<IndexType>* links, IndexType linkIndex)
+00082     {
+00083         IndexDLink<IndexType>& link = links[linkIndex];
+00084         const IndexType adj0 = link.m_adj[0];
+00085         const IndexType adj1 = link.m_adj[1];
+00086         if (!isInvalidIndex(adj1))
+00087         {
+00088             links[adj1].m_adj[0] = adj0;
+00089             link.m_adj[1] = invalidIndex<IndexType>();
+00090         }
+00091         if (!isInvalidIndex(adj0))
+00092         {
+00093             links[adj0].m_adj[1] = adj1;
+00094             link.m_adj[0] = invalidIndex<IndexType>();
+00095         }
+00096     }
+00097 
+00098     bool        isSolitary(IndexDLink<IndexType>* links, IndexType linkIndex)
+00099     {
+00100         const IndexDLink<IndexType>& link = links[linkIndex];
+00101         return isInvalidIndex(link.m_adj[0]) && isInvalidIndex(link.m_adj[1]);
+00102     }
+00103 
+00104     void        insertListHead(IndexType& listHead, IndexDLink<IndexType>* links, IndexType linkIndex)
+00105     {
+00106         NVBLAST_ASSERT(!isInvalidIndex(linkIndex));
+00107         if (!isInvalidIndex(listHead))
+00108         {
+00109             links[listHead].m_adj[0] = linkIndex;
+00110         }
+00111         links[linkIndex].m_adj[1] = listHead;
+00112         listHead = linkIndex;
+00113     }
+00114 
+00115     IndexType   removeListHead(IndexType& listHead, IndexDLink<IndexType>* links)
+00116     {
+00117         const IndexType linkIndex = listHead;
+00118         if (!isInvalidIndex(linkIndex))
+00119         {
+00120             listHead = links[linkIndex].m_adj[1];
+00121             if (!isInvalidIndex(listHead))
+00122             {
+00123                 links[listHead].m_adj[0] = invalidIndex<IndexType>();
+00124             }
+00125             links[linkIndex].m_adj[1] = invalidIndex<IndexType>();
+00126         }
+00127         return linkIndex;
+00128     }
+00129 
+00130     void        removeFromList(IndexType& listHead, IndexDLink<IndexType>* links, IndexType linkIndex)
+00131     {
+00132         NVBLAST_ASSERT(!isInvalidIndex(linkIndex));
+00133         if (listHead == linkIndex)
+00134         {
+00135             listHead = links[linkIndex].m_adj[1];
+00136         }
+00137         remove(links, linkIndex);
+00138     }
+00139 };
+00140 
 00141 
-00142     friend class DList;
-00143 };
-00144 
+00142 struct DLink
+00143 {
+00144     DLink() : m_prev(nullptr), m_next(nullptr) {}
 00145 
-00146 class DList
-00147 {
-00148 public:
-00149     DList() : m_head(nullptr), m_tail(nullptr) {}
+00146     DLink*  getPrev() const
+00147     {
+00148         return m_prev;
+00149     }
 00150 
-00151     bool    isEmpty() const
+00151     DLink*  getNext() const
 00152     {
-00153         NVBLAST_ASSERT((m_head == nullptr) == (m_tail == nullptr));
-00154         return m_head == nullptr;
-00155     }
-00156 
-00157     bool    isSolitary(const DLink& link) const
-00158     {
-00159         return link.m_prev == nullptr && link.m_next == nullptr && m_head != &link;
-00160     }
-00161 
-00162     DLink*  getHead() const
-00163     {
-00164         return m_head;
-00165     }
-00166 
-00167     DLink*  getTail() const
-00168     {
-00169         return m_tail;
-00170     }
-00171 
-00172     bool    insertHead(DLink& link)
-00173     {
-00174         NVBLAST_ASSERT(isSolitary(link));
-00175         if (!isSolitary(link))
-00176         {
-00177             return false;
-00178         }
+00153         return m_next;
+00154     }
+00155 
+00156 private:
+00157     DLink*  m_prev;
+00158     DLink*  m_next;
+00159 
+00160     friend class DList;
+00161 };
+00162 
+00163 
+00164 class DList
+00165 {
+00166 public:
+00167     DList() : m_head(nullptr), m_tail(nullptr) {}
+00168 
+00169     bool    isEmpty() const
+00170     {
+00171         NVBLAST_ASSERT((m_head == nullptr) == (m_tail == nullptr));
+00172         return m_head == nullptr;
+00173     }
+00174 
+00175     bool    isSolitary(const DLink& link) const
+00176     {
+00177         return link.m_prev == nullptr && link.m_next == nullptr && m_head != &link;
+00178     }
 00179 
-00180         link.m_next = m_head;
-00181         if (m_head != nullptr)
-00182         {
-00183             m_head->m_prev = &link;
-00184         }
-00185         m_head = &link;
-00186         if (m_tail == nullptr)
-00187         {
-00188             m_tail = &link;
-00189         }
-00190 
-00191         return true;
-00192     }
-00193 
-00194     bool    insertTail(DLink& link)
-00195     {
-00196         NVBLAST_ASSERT(isSolitary(link));
-00197         if (!isSolitary(link))
-00198         {
-00199             return false;
-00200         }
-00201 
-00202         link.m_prev = m_tail;
-00203         if (m_tail != nullptr)
-00204         {
-00205             m_tail->m_next = &link;
-00206         }
-00207         m_tail = &link;
-00208         if (m_head == nullptr)
-00209         {
-00210             m_head = &link;
-00211         }
-00212 
-00213         return true;
-00214     }
-00215 
-00216     void    remove(DLink& link)
-00217     {
-00218         if (link.m_prev != nullptr)
-00219         {
-00220             link.m_prev->m_next = link.m_next;
-00221         }
-00222         else
-00223         if (m_head == &link)
-00224         {
-00225             m_head = link.m_next;
-00226         }
-00227 
-00228         if (link.m_next != nullptr)
-00229         {
-00230             link.m_next->m_prev = link.m_prev;
-00231         }
-00232         else
-00233         if (m_tail == &link)
-00234         {
-00235             m_tail = link.m_prev;
-00236         }
-00237 
-00238         link.m_next = link.m_prev = nullptr;
-00239     }
-00240 
-00241     class It
-00242     {
-00243     public:
-00244         enum Direction { Reverse, Forward };
+00180     DLink*  getHead() const
+00181     {
+00182         return m_head;
+00183     }
+00184 
+00185     DLink*  getTail() const
+00186     {
+00187         return m_tail;
+00188     }
+00189 
+00190     bool    insertHead(DLink& link)
+00191     {
+00192         NVBLAST_ASSERT(isSolitary(link));
+00193         if (!isSolitary(link))
+00194         {
+00195             return false;
+00196         }
+00197 
+00198         link.m_next = m_head;
+00199         if (m_head != nullptr)
+00200         {
+00201             m_head->m_prev = &link;
+00202         }
+00203         m_head = &link;
+00204         if (m_tail == nullptr)
+00205         {
+00206             m_tail = &link;
+00207         }
+00208 
+00209         return true;
+00210     }
+00211 
+00212     bool    insertTail(DLink& link)
+00213     {
+00214         NVBLAST_ASSERT(isSolitary(link));
+00215         if (!isSolitary(link))
+00216         {
+00217             return false;
+00218         }
+00219 
+00220         link.m_prev = m_tail;
+00221         if (m_tail != nullptr)
+00222         {
+00223             m_tail->m_next = &link;
+00224         }
+00225         m_tail = &link;
+00226         if (m_head == nullptr)
+00227         {
+00228             m_head = &link;
+00229         }
+00230 
+00231         return true;
+00232     }
+00233 
+00234     void    remove(DLink& link)
+00235     {
+00236         if (link.m_prev != nullptr)
+00237         {
+00238             link.m_prev->m_next = link.m_next;
+00239         }
+00240         else
+00241         if (m_head == &link)
+00242         {
+00243             m_head = link.m_next;
+00244         }
 00245 
-00246         It(const DList& list, Direction dir = Forward) : m_curr(dir == Forward ? list.getHead() : list.getTail()) {}
-00247 
-00249         operator bool() const
-00250         {
-00251             return m_curr != nullptr;
-00252         }
-00253 
-00255         operator const DLink*() const
-00256         {
-00257             return m_curr;
-00258         }
-00259 
-00261         const DLink*    operator ++ ()
-00262         {
-00263             return m_curr = m_curr->getNext();
-00264         }
+00246         if (link.m_next != nullptr)
+00247         {
+00248             link.m_next->m_prev = link.m_prev;
+00249         }
+00250         else
+00251         if (m_tail == &link)
+00252         {
+00253             m_tail = link.m_prev;
+00254         }
+00255 
+00256         link.m_next = link.m_prev = nullptr;
+00257     }
+00258 
+00259     class It
+00260     {
+00261     public:
+00262         enum Direction { Reverse, Forward };
+00263 
+00264         It(const DList& list, Direction dir = Forward) : m_curr(dir == Forward ? list.getHead() : list.getTail()) {}
 00265 
-00267         const DLink*    operator -- ()
-00268         {
-00269             return m_curr = m_curr->getPrev();
+00267         operator bool() const
+00268         {
+00269             return m_curr != nullptr;
 00270         }
 00271 
-00272     private:
-00273         const DLink*    m_curr;
-00274     };
-00275 
-00276 private:
-00277     DLink*  m_head;
-00278     DLink*  m_tail;
-00279 };
-00280 
-00281 } // end namespace Blast
-00282 } // end namespace Nv
+00273         operator const DLink*() const
+00274         {
+00275             return m_curr;
+00276         }
+00277 
+00279         const DLink*    operator ++ ()
+00280         {
+00281             return m_curr = m_curr->getNext();
+00282         }
 00283 
-00284 
-00285 #endif // #ifndef NVBLASTDLINK_H
+00285         const DLink*    operator -- ()
+00286         {
+00287             return m_curr = m_curr->getPrev();
+00288         }
+00289 
+00290     private:
+00291         const DLink*    m_curr;
+00292     };
+00293 
+00294 private:
+00295     DLink*  m_head;
+00296     DLink*  m_tail;
+00297 };
+00298 
+00299 } // end namespace Blast
+00300 } // end namespace Nv
+00301 
+00302 
+00303 #endif // #ifndef NVBLASTDLINK_H
 
-

sdk/extensions/import/include/NvBlastExtApexImportTool.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTAPEXIMPORTTOOL_H
-00012 #define NVBLASTEXTAPEXIMPORTTOOL_H
-00013 
-00014 #include "NvBlast.h"
-00015 #include <vector>
-00016 #include <string>
-00017 #include "NvBlastExtPxAsset.h"
-00018 
-00019 namespace physx
-00020 {
-00021 class PxErrorCallback;
-00022 class PxAllocatorCallback;
-00023 namespace general_PxIOStream2
-00024 {
-00025 class PxFileBuf;
-00026 }
-00027 }
+

sdk/extensions/import/include/NvBlastExtApexImportTool.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
 00028 
-00029 namespace nvidia
-00030 {
-00031 namespace apex
-00032 {
-00033 class ApexSDK;
-00034 class ModuleDestructible;
-00035 class DestructibleAsset;
-00036 }
-00037 using namespace physx::general_PxIOStream2;
-00038 }
-00039 
-00040 
-00041 namespace Nv
-00042 {
-00043 namespace Blast
-00044 {
-00045 
-00046 struct CollisionHull;
-00047 class TkFramework;
-00048 
-00049 namespace ApexImporter
-00050 {
-00051 
-00052 struct ApexImporterConfig
-00053 {
-00063     enum InterfaceSearchMode { EXACT, FORCED, MODE_COUNT };
+00029 #ifndef NVBLASTEXTAPEXIMPORTTOOL_H
+00030 #define NVBLASTEXTAPEXIMPORTTOOL_H
+00031 
+00032 #include "NvBlast.h"
+00033 #include <vector>
+00034 #include <string>
+00035 #include "NvBlastExtPxAsset.h"
+00036 
+00037 namespace physx
+00038 {
+00039 namespace general_PxIOStream2
+00040 {
+00041 class PxFileBuf;
+00042 }
+00043 }
+00044 
+00045 namespace nvidia
+00046 {
+00047 namespace apex
+00048 {
+00049 class ApexSDK;
+00050 class ModuleDestructible;
+00051 class DestructibleAsset;
+00052 }
+00053 using namespace physx::general_PxIOStream2;
+00054 }
+00055 
+00056 
+00057 namespace Nv
+00058 {
+00059 namespace Blast
+00060 {
+00061 
+00062 struct CollisionHull;
+00063 class TkFramework;
 00064 
-00065     ApexImporterConfig()
-00066     {
-00067         setDefaults();
-00068     }
-00069 
-00070     void setDefaults()
-00071     {
-00072         infSearchMode               =   EXACT;
-00073     }
-00074     InterfaceSearchMode infSearchMode;
-00075 };
-00076 
-00077 
-00078 class ApexDestruction;
-00079 
+00065 namespace ApexImporter
+00066 {
+00067 
+00068 struct ApexImporterConfig
+00069 {
+00079     enum InterfaceSearchMode { EXACT, FORCED, MODE_COUNT };
 00080 
-00084 class ApexImportTool
-00085 {
-00086 public:
-00087 
-00092     ApexImportTool(NvBlastLog logFn = NULL);
-00093     ~ApexImportTool();
-00094 
+00081     ApexImporterConfig()
+00082     {
+00083         setDefaults();
+00084     }
+00085 
+00086     void setDefaults()
+00087     {
+00088         infSearchMode               =   EXACT;
+00089     }
+00090     InterfaceSearchMode infSearchMode;
+00091 };
+00092 
+00093 
+00094 class ApexDestruction;
+00095 
 00096 
-00101     bool                                initialize();
-00102 
-00109     bool                                initialize(nvidia::apex::ApexSDK* apexSdk, nvidia::apex::ModuleDestructible* moduleDestructible);
-00110 
-00115     bool                                isValid();
-00116 
+00100 class ApexImportTool
+00101 {
+00102 public:
+00103 
+00107     ApexImportTool();
+00108     ~ApexImportTool();
+00109 
+00111 
+00116     bool                                initialize();
 00117 
-00123     nvidia::apex::DestructibleAsset*    loadAssetFromFile(nvidia::PxFileBuf* stream);
-00124 
+00124     bool                                initialize(nvidia::apex::ApexSDK* apexSdk, nvidia::apex::ModuleDestructible* moduleDestructible);
 00125 
-00136     bool                                importApexAsset(std::vector<uint32_t>& chunkReorderInvMap, const nvidia::apex::DestructibleAsset* apexAsset,
-00137                                             std::vector<NvBlastChunkDesc>& chunkDescriptors, std::vector<NvBlastBondDesc>& bondDescriptors, std::vector<uint32_t>& flags);
-00138 
-00150     bool                                importApexAsset(std::vector<uint32_t>& chunkReorderInvMap, const nvidia::apex::DestructibleAsset* apexAsset,
-00151                                             std::vector<NvBlastChunkDesc>& chunkDescriptors, std::vector<NvBlastBondDesc>& bondDescriptors, std::vector<uint32_t>& flags,
-00152                                             const ApexImporterConfig& config);
+00130     bool                                isValid();
+00131 
+00132 
+00138     nvidia::apex::DestructibleAsset*    loadAssetFromFile(nvidia::PxFileBuf* stream);
+00139 
+00140 
+00151     bool                                importApexAsset(std::vector<uint32_t>& chunkReorderInvMap, const nvidia::apex::DestructibleAsset* apexAsset,
+00152                                             std::vector<NvBlastChunkDesc>& chunkDescriptors, std::vector<NvBlastBondDesc>& bondDescriptors, std::vector<uint32_t>& flags);
 00153 
-00154 
-00161     bool                                saveAsset(const NvBlastAsset* asset, nvidia::PxFileBuf* stream);
-00162 
-00173     bool                                getCollisionGeometry(const nvidia::apex::DestructibleAsset* apexAsset, uint32_t chunkCount, std::vector<uint32_t>& chunkReorderInvMap,
-00174                                                 const std::vector<uint32_t>& apexChunkFlags, std::vector<ExtPxAssetDesc::ChunkDesc>& physicsChunks,
-00175                                                 std::vector<ExtPxAssetDesc::SubchunkDesc>& physicsSubchunks);
-00176 
-00177     ApexDestruction*                    m_apexDestruction;
-00179 
-00180 private:
-00181     bool                                importApexAssetInternal(std::vector<uint32_t>& chunkReorderInvMap, const nvidia::apex::DestructibleAsset* apexAsset,
-00182                                             std::vector<NvBlastChunkDesc>& chunkDescriptors, std::vector<NvBlastBondDesc>& bondDesc, std::vector<uint32_t>& flags,
-00183                                             const ApexImporterConfig& configDesc);
-00184     
-00185 
-00186 protected:
-00187     NvBlastLog  m_log;
-00188 
-00189 protected:
-00190     ApexImportTool(const ApexImportTool&);
-00191     ApexImportTool& operator=(const ApexImportTool&);
-00192 };
-00193 
-00194 } // namespace ApexImporter
+00165     bool                                importApexAsset(std::vector<uint32_t>& chunkReorderInvMap, const nvidia::apex::DestructibleAsset* apexAsset,
+00166                                             std::vector<NvBlastChunkDesc>& chunkDescriptors, std::vector<NvBlastBondDesc>& bondDescriptors, std::vector<uint32_t>& flags,
+00167                                             const ApexImporterConfig& config);
+00168 
+00169 
+00176     bool                                saveAsset(const NvBlastAsset* asset, nvidia::PxFileBuf* stream);
+00177 
+00189     bool                                getCollisionGeometry(const nvidia::apex::DestructibleAsset* apexAsset, uint32_t chunkCount, std::vector<uint32_t>& chunkReorderInvMap,
+00190                                                 const std::vector<uint32_t>& apexChunkFlags, std::vector<ExtPxAssetDesc::ChunkDesc>& physicsChunks,
+00191                                                 std::vector<ExtPxAssetDesc::SubchunkDesc>& physicsSubchunks, std::vector<std::vector<CollisionHull*> >& hullsDesc);
+00192 
+00193     ApexDestruction*                    m_apexDestruction;
 00195 
-00196 } // namespace Blast
-00197 } // namespace Nv
-00198 
-00199 #endif // NVBLASTEXTAPEXIMPORTTOOL_H
+00196 private:
+00197     bool                                importApexAssetInternal(std::vector<uint32_t>& chunkReorderInvMap, const nvidia::apex::DestructibleAsset* apexAsset,
+00198                                             std::vector<NvBlastChunkDesc>& chunkDescriptors, std::vector<NvBlastBondDesc>& bondDesc, std::vector<uint32_t>& flags,
+00199                                             const ApexImporterConfig& configDesc);
+00200     
+00201 
+00202 protected:
+00203     ApexImportTool(const ApexImportTool&);
+00204     ApexImportTool& operator=(const ApexImportTool&);
+00205 };
+00206 
+00207 } // namespace ApexImporter
+00208 
+00209 } // namespace Blast
+00210 } // namespace Nv
+00211 
+00212 #endif // NVBLASTEXTAPEXIMPORTTOOL_H
 
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_asset_utils_8h.html b/docs/api_docs/files/_nv_blast_ext_asset_utils_8h.html new file mode 100644 index 0000000..1d66ddc --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_asset_utils_8h.html @@ -0,0 +1,224 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/assetutils/include/NvBlastExtAssetUtils.h File Reference + + + + + + + +
+

sdk/extensions/assetutils/include/NvBlastExtAssetUtils.h File Reference

#include "NvBlastTypes.h"
+#include "NvCTypes.h"
+#include <stdint.h>
+ +

+Go to the source code of this file.

#define NVBLAST_ALWAYS_ASSERT_MESSAGE (exp message   )     ((void)0)
+ + + + + + + + + + + +

Classes

struct  NvBlastExtAssetUtilsBondDesc

Functions

void NvBlastExtAssetTransformInPlace (NvBlastAsset *asset, const NvcVec3 *scale, const NvcQuat *rotation, const NvcVec3 *translation)
NvBlastAssetNvBlastExtAssetUtilsAddWorldBonds (const NvBlastAsset *asset, const uint32_t *worldBoundChunks, uint32_t worldBoundChunkCount, const NvcVec3 *bondDirections, const uint32_t *bondUserData)
NvBlastAssetDesc NvBlastExtAssetUtilsMergeAssets (const NvBlastAsset **components, const NvcQuat *rotations, const NvcVec3 *translations, uint32_t componentCount, const NvBlastExtAssetUtilsBondDesc *newBondDescs, uint32_t newBondCount)
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NvBlastExtAssetTransformInPlace (NvBlastAsset asset,
const NvcVec3 scale,
const NvcQuat rotation,
const NvcVec3 translation 
)
+
+
+ +

+Transforms asset in place using scale, rotation, transform. Chunk centroids, chunk bond centroids and bond normals are being transformed. Chunk volume and bond area are changed accordingly.

+

Parameters:
+ + + + + +
[in,out] asset Pointer to the asset to be transformed (modified).
[in] scale Pointer to scale to be applied. Can be nullptr.
[in] rotation Pointer to rotation to be applied. Can be nullptr.
[in] translation Pointer to translation to be applied. Can be nullptr.
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NvBlastAsset* NvBlastExtAssetUtilsAddWorldBonds (const NvBlastAsset asset,
const uint32_t *  worldBoundChunks,
uint32_t  worldBoundChunkCount,
const NvcVec3 bondDirections,
const uint32_t *  bondUserData 
)
+
+
+ +

+Reauthor the provided asset to bond the specified support chunks to the world.

+

Parameters:
+ + + + + + +
[in] asset Pointer to the original asset. Won't be modified.
[in] worldBoundChunks Array of support chunk indices which are to be bound to the world.
[in] worldBoundChunksCount Size of worldBoundChunks array.
[in] bondDirections Array of normals for each bond (size worldBoundChunksCount)
[in] bondUserData Array of user data values for the new bonds, of size worldBoundChunksCount. May be NULL. If NULL, bond user data will be set to zero.
+
+
Returns:
a new asset with added bonds if successful, NULL otherwise.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NvBlastAssetDesc NvBlastExtAssetUtilsMergeAssets (const NvBlastAsset **  components,
const NvcQuat rotations,
const NvcVec3 translations,
uint32_t  componentCount,
const NvBlastExtAssetUtilsBondDesc newBondDescs,
uint32_t  newBondCount 
)
+
+
+ +

+Creates an asset descriptor which will build an asset that merges several assets. Each asset (or component) is given a transform, applied to the geometric information in the chunk and bond descriptors.

+New bond descriptors may be given to bond support chunks from different components.

+An NvBlastAsset may appear more than once in the components array.

+NOTE: This function allocates memory using the allocator in NvBlastGlobals, to create the new chunk and bond descriptor arrays referenced in the returned NvBlastAssetDesc. The user must free this memory after use with NVBLAST_FREE appied to the pointers in the returned NvBlastAssetDesc.

+

Parameters:
+ + + + + + + +
[in] components An array of assets to merge, of size componentCount.
[in] rotations An array of rotations to apply to the geometric data in the chunks and bonds, stored quaternion format. The quaternions MUST be normalized. If NULL, no rotations are applied. If not NULL, the array must be of size componentCount.
[in] translations An array of transforms to apply to the geometric data in the chunks and bonds. If NULL, no translations are applied. If not NULL, the array must be of size componentCount.
[in] componentCount The size of the components and relativeTransforms arrays.
[in] newBondDescs Descriptors of type NvBlastExtAssetUtilsBondDesc for new bonds between components, of size newBondCount. If NULL, newBondCount must be 0.
[in] newBondCount The size of the newBondDescs array.
+
+
Returns:
an asset descriptor that will build an asset which merges the components, using NvBlastCreateAsset.
+ +
+

+

+ + + + 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 new file mode 100644 index 0000000..f3a3f29 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_authoring_8h-source.html @@ -0,0 +1,101 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoring.h Source File + + + + + + + +

sdk/extensions/authoring/include/NvBlastExtAuthoring.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTAUTHORING_H
+00030 #define NVBLASTAUTHORING_H
+00031 
+00032 #include "NvBlastExtAuthoringTypes.h"
+00033 
+00034 namespace physx
+00035 {
+00036     class PxCooking;
+00037     class PxPhysicsInsertionCallback;
+00038 }
+00039 
+00040 namespace Nv
+00041 {
+00042     namespace Blast
+00043     {
+00044         class Mesh;
+00045         class VoronoiSitesGenerator;
+00046         class FractureTool;
+00047         class ConvexMeshBuilder;
+00048         class BlastBondGenerator;
+00049         class MeshCleaner;
+00050     }
+00051 }
+00052 
+00066 NVBLAST_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMesh(const physx::PxVec3* positions, const physx::PxVec3* normals,
+00067     const physx::PxVec2* uv, uint32_t verticesCount, const uint32_t* indices, uint32_t indicesCount);
+00068 
+00076 NVBLAST_API Nv::Blast::VoronoiSitesGenerator* NvBlastExtAuthoringCreateVoronoiSitesGenerator(Nv::Blast::Mesh* mesh,
+00077     Nv::Blast::RandomGeneratorBase* rng);
+00078 
+00083 NVBLAST_API Nv::Blast::FractureTool* NvBlastExtAuthoringCreateFractureTool();
+00084 
+00089 NVBLAST_API Nv::Blast::BlastBondGenerator* NvBlastExtAuthoringCreateBondGenerator(physx::PxCooking* cooking, 
+00090     physx::PxPhysicsInsertionCallback* insertionCallback);
+00091 
+00096 NVBLAST_API Nv::Blast::ConvexMeshBuilder* NvBlastExtAuthoringCreateConvexMeshBuilder(physx::PxCooking* cooking,
+00097     physx::PxPhysicsInsertionCallback* insertionCallback);
+00098 
+00109 NVBLAST_API Nv::Blast::AuthoringResult* NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool& fTool,
+00110     Nv::Blast::BlastBondGenerator& bondGenerator, Nv::Blast::ConvexMeshBuilder& collisionBuilder, int32_t defaultSupportDepth = -1);
+00111 
+00112 
+00117 NVBLAST_API Nv::Blast::MeshCleaner* NvBlastExtAuthoringCreateMeshCleaner();
+00118 
+00119 #endif // ifndef NVBLASTAUTHORING_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_8h.html b/docs/api_docs/files/_nv_blast_ext_authoring_8h.html new file mode 100644 index 0000000..380b8bb --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_authoring_8h.html @@ -0,0 +1,310 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoring.h File Reference + + + + + + + +
+

sdk/extensions/authoring/include/NvBlastExtAuthoring.h File Reference

#include "NvBlastExtAuthoringTypes.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + +

Namespaces

namespace  Nv
namespace  Nv::Blast
namespace  physx

Functions

Nv::Blast::BlastBondGeneratorNvBlastExtAuthoringCreateBondGenerator (physx::PxCooking *cooking, physx::PxPhysicsInsertionCallback *insertionCallback)
Nv::Blast::ConvexMeshBuilderNvBlastExtAuthoringCreateConvexMeshBuilder (physx::PxCooking *cooking, physx::PxPhysicsInsertionCallback *insertionCallback)
Nv::Blast::FractureToolNvBlastExtAuthoringCreateFractureTool ()
Nv::Blast::MeshNvBlastExtAuthoringCreateMesh (const physx::PxVec3 *positions, const physx::PxVec3 *normals, const physx::PxVec2 *uv, uint32_t verticesCount, const uint32_t *indices, uint32_t indicesCount)
Nv::Blast::MeshCleanerNvBlastExtAuthoringCreateMeshCleaner ()
Nv::Blast::VoronoiSitesGeneratorNvBlastExtAuthoringCreateVoronoiSitesGenerator (Nv::Blast::Mesh *mesh, Nv::Blast::RandomGeneratorBase *rng)
Nv::Blast::AuthoringResultNvBlastExtAuthoringProcessFracture (Nv::Blast::FractureTool &fTool, Nv::Blast::BlastBondGenerator &bondGenerator, Nv::Blast::ConvexMeshBuilder &collisionBuilder, int32_t defaultSupportDepth=-1)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
Nv::Blast::BlastBondGenerator* NvBlastExtAuthoringCreateBondGenerator (physx::PxCooking *  cooking,
physx::PxPhysicsInsertionCallback *  insertionCallback 
)
+
+
+ +

+Create BlastBondGenerator

Returns:
Pointer to created BlastBondGenerator. User's code should release it after usage.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
Nv::Blast::ConvexMeshBuilder* NvBlastExtAuthoringCreateConvexMeshBuilder (physx::PxCooking *  cooking,
physx::PxPhysicsInsertionCallback *  insertionCallback 
)
+
+
+ +

+Create ConvexMeshBuilder

Returns:
Pointer to created ConvexMeshBuilder. User's code should release it after usage.
+ +
+

+ +

+
+ + + + + + + + +
Nv::Blast::FractureTool* NvBlastExtAuthoringCreateFractureTool (  ) 
+
+
+ +

+Create FractureTool object.

Returns:
Pointer to create FractureTool. User's code should release it after usage.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nv::Blast::Mesh* NvBlastExtAuthoringCreateMesh (const physx::PxVec3 *  positions,
const physx::PxVec3 *  normals,
const physx::PxVec2 *  uv,
uint32_t  verticesCount,
const uint32_t *  indices,
uint32_t  indicesCount 
)
+
+
+ +

+Constructs mesh object from array of triangles. User should call release() after usage.

+

Parameters:
+ + + + + + + +
[in] positions Array for vertex positions, 3 * verticesCount floats will be read
[in] normals Array for vertex normals, 3 * verticesCount floats will be read
[in] uv Array for vertex uv coordinates, 2 * verticesCount floats will be read
[in] verticesCount Number of vertices in mesh
[in] indices Array of vertex indices. Indices contain vertex index triplets which form a mesh triangle.
[in] indicesCount Indices count (should be equal to numberOfTriangles * 3)
+
+
Returns:
pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
+ +
+

+ +

+
+ + + + + + + + +
Nv::Blast::MeshCleaner* NvBlastExtAuthoringCreateMeshCleaner (  ) 
+
+
+ +

+Creates MeshCleaner object

Returns:
pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
Nv::Blast::VoronoiSitesGenerator* NvBlastExtAuthoringCreateVoronoiSitesGenerator (Nv::Blast::Mesh mesh,
Nv::Blast::RandomGeneratorBase rng 
)
+
+
+ +

+Voronoi sites should not be generated outside of the fractured mesh, so VoronoiSitesGenerator should be supplied with fracture mesh.

Parameters:
+ + + +
[in] mesh Fracture mesh
[in] rnd User supplied random value generator.
+
+
Returns:
Pointer to VoronoiSitesGenerator. User's code should release it after usage.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nv::Blast::AuthoringResult* NvBlastExtAuthoringProcessFracture (Nv::Blast::FractureTool fTool,
Nv::Blast::BlastBondGenerator bondGenerator,
Nv::Blast::ConvexMeshBuilder collisionBuilder,
int32_t  defaultSupportDepth = -1 
)
+
+
+ +

+Performs pending fractures and generates fractured asset, render and collision geometry

+

Parameters:
+ + + + + +
[in] fTool Fracture tool created by NvBlastExtAuthoringCreateFractureTool
[in] bondGenerator Bond generator created by NvBlastExtAuthoringCreateBondGenerator
[in] collisionBuilder Collision builder created by NvBlastExtAuthoringCreateConvexMeshBuilder
[in] defaultSupportDepth All new chunks will be marked as support if its depth equal to defaultSupportDepth. By default leaves (chunks without children) marked as support.
+
+
Returns:
Authoring result
+ +
+

+

+ + + + 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 2c7effb..b1355f1 100644 --- 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 @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoringBondGenerator.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoringBondGenerator.h Source File @@ -19,101 +19,105 @@
-

sdk/extensions/authoring/include/NvBlastExtAuthoringBondGenerator.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H
-00012 #define NVBLASTEXTAUTHORINGBONDGENERATOR_H
-00013 
-00014 #include "NvBlastExtAuthoringTypes.h"
-00015 #include "NvBlastExtAuthoringFractureTool.h"
-00016 #include "NvBlastTypes.h"
-00017 #include "../cooking/PxCooking.h"
-00018 #include <PxPlane.h>
-00019 #include <NvBlastExtAuthoringCollisionBuilder.h>
-00020 struct NvBlastBondDesc;
-00021 struct NvBlastChunkDesc;
-00022 struct NvBlastBond;
-00023 
-00024 using namespace physx;
-00025 
-00026 
-00027 namespace Nv
-00028 {
-00029 namespace Blast
-00030 {
-00031 
-00032 // Forward declarations
-00033 class TriangleProcessor;
-00034 struct PlaneChunkIndexer;
-00035 
-00041 struct BondGenerationConfig
-00042 {
-00043     enum BondGenMode { EXACT, AVERAGE };
-00044     BondGenMode bondMode;
-00045 };
-00046 
-00047 
-00048 struct PlaneChunkIndexer
-00049 {
-00050     PlaneChunkIndexer(int32_t chunkId, int32_t trId, physx::PxPlane pl) : chunkId(chunkId), trId(trId), plane(pl) {}
-00051     int32_t chunkId;
-00052     int32_t trId;
-00053     physx::PxPlane plane;
-00054 };
-00055 
-00056 
-00061 class BlastBondGenerator
-00062 {
-00063 public:
-00064                 
-00065     BlastBondGenerator(physx::PxCooking* cooking, physx::PxPhysicsInsertionCallback* insertionCallback) : mPxCooking(cooking), mPxInsertionCallback(insertionCallback){};
+

sdk/extensions/authoring/include/NvBlastExtAuthoringBondGenerator.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H
+00030 #define NVBLASTEXTAUTHORINGBONDGENERATOR_H
+00031 
+00032 #include "NvBlastExtAuthoringTypes.h"
+00033 
+00034 namespace physx
+00035 {
+00036 class PxPlane;
+00037 class PxCooking;
+00038 class PxPhysicsInsertionCallback;
+00039 }
+00040 
+00041 struct NvBlastBondDesc;
+00042 struct NvBlastChunkDesc;
+00043 struct NvBlastBond;
+00044 
+00045 namespace Nv
+00046 {
+00047 namespace Blast
+00048 {
+00049 
+00050 // Forward declarations
+00051 class FractureTool;
+00052 class TriangleProcessor;
+00053 struct PlaneChunkIndexer;
+00054 
+00060 struct BondGenerationConfig
+00061 {
+00062     enum BondGenMode { EXACT, AVERAGE };
+00063     BondGenMode bondMode;
+00064 };
+00065 
 00066 
-00075     int32_t buildDescFromInternalFracture(FractureTool* tool, const std::vector<bool>& chunkIsSupport, std::vector<NvBlastBondDesc>& resultBondDescs, std::vector<NvBlastChunkDesc>& resultChunkDescriptors);
-00076 
-00077 
-00086     int32_t createBondBetweenMeshes(const std::vector<Triangle>& meshA, const std::vector<Triangle>& meshB, NvBlastBond& resultBond, BondGenerationConfig conf = BondGenerationConfig());
-00087 
-00096     int32_t createBondBetweenMeshes(const std::vector<std::vector<Triangle> >& geometry, std::vector<NvBlastBondDesc>& resultBond, const std::vector<std::pair<uint32_t, uint32_t> >& overlaps, BondGenerationConfig cfg);
-00097 
-00098 
-00107     int32_t bondsFromPrefractured(const std::vector<std::vector<Triangle>>& geometry, const std::vector<bool>& chunkIsSupport, std::vector<NvBlastBondDesc>& resultBondDescs, BondGenerationConfig conf = BondGenerationConfig());
-00108                 
-00109 private:
-00110     float   processWithMidplanes(TriangleProcessor* trProcessor, const std::vector<physx::PxVec3>& chunk1Points, const std::vector<physx::PxVec3>& chunk2Points,
-00111                                  const std::vector<physx::PxVec3>& hull1p,const std::vector<physx::PxVec3>& hull2p, physx::PxVec3& normal, physx::PxVec3& centroid);
-00112 
-00113     int32_t createFullBondListAveraged(const std::vector<std::vector<Triangle>>& chunksGeometry, const std::vector<bool>& supportFlags, std::vector<NvBlastBondDesc>& mResultBondDescs, BondGenerationConfig conf);
-00114     int32_t createFullBondListExact(const std::vector<std::vector<Triangle>>& chunksGeometry, const std::vector<bool>& supportFlags, std::vector<NvBlastBondDesc>& mResultBondDescs, BondGenerationConfig conf);
-00115     int32_t createFullBondListExactInternal(const std::vector<std::vector<Triangle>>& chunksGeometry, std::vector < PlaneChunkIndexer >& planeTriangleMapping , std::vector<NvBlastBondDesc>& mResultBondDescs);
-00116     int32_t createBondForcedInternal(const std::vector<PxVec3>& hull0, const std::vector<PxVec3>& hull1,const CollisionHull& cHull0, const CollisionHull& cHull1,PxBounds3 bound0, PxBounds3 bound1, NvBlastBond& resultBond, float overlapping);
-00117 
-00118     void    buildGeometryCache(const std::vector<std::vector<Triangle> >& geometry);
-00119     void    resetGeometryCache();
-00120 
-00121     physx::PxCooking*                           mPxCooking;
-00122     physx::PxPhysicsInsertionCallback*          mPxInsertionCallback;
-00123 
-00124 
-00125     std::vector<std::vector<Triangle> >         mGeometryCache;
-00126 
-00127     std::vector<PlaneChunkIndexer>              mPlaneCache;
-00128     std::vector<CollisionHull>                  mCHullCache;
-00129     std::vector<std::vector<physx::PxVec3> >    mHullsPointsCache;
-00130     std::vector<physx::PxBounds3 >              mBoundsCache;
-00131 };
-00132 
-00133 }   // namespace Blast
-00134 }   // namespace Nv
-00135 
-00136 #endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H
+00067 struct PlaneChunkIndexer
+00068 {
+00069     PlaneChunkIndexer(int32_t chunkId, int32_t trId, physx::PxPlane pl) : chunkId(chunkId), trId(trId), plane(pl) {}
+00070     int32_t chunkId;
+00071     int32_t trId;
+00072     physx::PxPlane plane;
+00073 };
+00074 
+00075 
+00080 class BlastBondGenerator
+00081 {
+00082 public:
+00083     virtual ~BlastBondGenerator() {}
+00084 
+00088     virtual void release() = 0;
+00089 
+00099     virtual int32_t buildDescFromInternalFracture(FractureTool* tool, const bool* chunkIsSupport, 
+00100         NvBlastBondDesc*& resultBondDescs, NvBlastChunkDesc*& resultChunkDescriptors) = 0;
+00101 
+00102 
+00113     virtual int32_t createBondBetweenMeshes(uint32_t meshACount, const Triangle* meshA, uint32_t meshBCount, const Triangle* meshB, 
+00114         NvBlastBond& resultBond, BondGenerationConfig conf = BondGenerationConfig()) = 0;
+00115 
+00130     virtual int32_t createBondBetweenMeshes(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
+00131         uint32_t overlapsCount, const uint32_t* overlapsA, const uint32_t* overlapsB, 
+00132         NvBlastBondDesc*& resultBond, BondGenerationConfig cfg) = 0;
+00133 
+00134 
+00148     virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
+00149         const bool*& chunkIsSupport, NvBlastBondDesc*& resultBondDescs,
+00150         BondGenerationConfig conf = BondGenerationConfig()) = 0;
+00151                 
+00152 };
+00153 
+00154 }   // namespace Blast
+00155 }   // namespace Nv
+00156 
+00157 #endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H
 
-

sdk/extensions/authoring/include/NvBlastExtAuthoringCollisionBuilder.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDER_H
-00012 #define NVBLASTEXTAUTHORINGCOLLISIONBUILDER_H
-00013 
-00014 #include "NvBlastTypes.h"
-00015 #include <vector>
-00016 #include <PxVec3.h>
-00017 
-00018 namespace physx
-00019 {
-00020     class PxCooking;
-00021     class PxPhysicsInsertionCallback;
-00022     class PxVec3;
-00023     class PxConvexMesh;
-00024 }
-00025 
-00026 
-00027 namespace Nv
-00028 {
-00029 namespace Blast
-00030 {
-00031 
-00035 struct CollisionHull
-00036 {
-00040     struct HullPolygon
-00041     {
-00042         // Polygon base plane
-00043         float       mPlane[4];
-00044         // Number vertices in polygon
-00045         uint16_t    mNbVerts;
-00046         // First index in CollisionHull.indices array for this polygon
-00047         uint16_t    mIndexBase;
-00048     };
-00050 
-00051     CollisionHull(){};
-00052 
-00053     std::vector<physx::PxVec3>  points;
-00054     std::vector<uint32_t>       indices;
-00055     std::vector<HullPolygon>    polygonData;
-00056 };
-00057 
-00058 
-00064 class ConvexMeshBuilder
-00065 {
-00066 public:
-00067 
-00071     ConvexMeshBuilder(physx::PxCooking* cooking, physx::PxPhysicsInsertionCallback* insertionCallback) : mInsertionCallback(insertionCallback), mCooking(cooking) {}
+

sdk/extensions/authoring/include/NvBlastExtAuthoringCollisionBuilder.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDER_H
+00030 #define NVBLASTEXTAUTHORINGCOLLISIONBUILDER_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 namespace physx
+00035 {
+00036 class PxCooking;
+00037 class PxPhysicsInsertionCallback;
+00038 class PxVec3;
+00039 class PxConvexMesh;
+00040 }
+00041 
+00042 
+00043 namespace Nv
+00044 {
+00045 namespace Blast
+00046 {
+00047 
+00048 struct CollisionHull;
+00049 
+00055 class ConvexMeshBuilder
+00056 {
+00057 public:
+00058     virtual ~ConvexMeshBuilder() {}
+00059 
+00063     virtual void                    release() = 0;
+00064 
+00071     virtual CollisionHull*          buildCollisionGeometry(uint32_t verticesCount, const physx::PxVec3* vertexData) = 0;
 00072 
-00078     void                    buildCollisionGeometry(const std::vector<physx::PxVec3>& vertexData, CollisionHull& output);
-00079 
-00086     physx::PxConvexMesh*    buildConvexMesh(std::vector<physx::PxVec3>& vertexData);
-00087 
-00088 
-00095     physx::PxConvexMesh*    buildConvexMesh(CollisionHull& hull);
-00096 
-00097 
-00111     void                    trimCollisionGeometry(std::vector<CollisionHull>& in, const std::vector<uint32_t>& chunkDepth);
-00112 
-00113 
-00114 private:
-00115     physx::PxPhysicsInsertionCallback*  mInsertionCallback;
-00116     physx::PxCooking*                   mCooking;
-00117 };
-00118 
-00119 } // namespace Blast
-00120 } // namespace Nv
-00121 
-00122 
-00123 #endif // ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDER_H
+00080     virtual physx::PxConvexMesh*    buildConvexMesh(uint32_t verticesCount, const physx::PxVec3* vertexData) = 0;
+00081 
+00082 
+00089     virtual physx::PxConvexMesh*    buildConvexMesh(const CollisionHull& hull) = 0;
+00090 
+00091 
+00104     virtual void                    trimCollisionGeometry(uint32_t chunksCount, CollisionHull** in, const uint32_t* chunkDepth) = 0;
+00105 
+00106 };
+00107 
+00108 } // namespace Blast
+00109 } // namespace Nv
+00110 
+00111 
+00112 #endif // ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDER_H
 
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h.html b/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h.html new file mode 100644 index 0000000..1f499f9 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h.html @@ -0,0 +1,43 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoringMeshCleaner.h File Reference + + + + + + + +
+

sdk/extensions/authoring/include/NvBlastExtAuthoringMeshCleaner.h File Reference

#include "NvBlastExtAuthoringTypes.h"
+ +

+Go to the source code of this file. + + + + + + + + + +

Classes

class  Nv::Blast::MeshCleaner

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + 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 6787724..dbcb4dd 100644 --- 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 @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoringTypes.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/authoring/include/NvBlastExtAuthoringTypes.h Source File @@ -19,116 +19,222 @@
-

sdk/extensions/authoring/include/NvBlastExtAuthoringTypes.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTAUTHORINGTYPES_H
-00012 #define NVBLASTAUTHORINGTYPES_H
-00013 
-00014 #include <PxVec3.h>
-00015 #include <PxVec2.h>
-00016 #include <PxBounds3.h>
-00017 #include <algorithm>
-00018 #include "NvBlastTypes.h"
-00019 
-00020 #define NOT_VALID_VERTEX INT32_MAX
-00021 
-00022 namespace Nv
-00023 {
-00024 namespace Blast
-00025 {
-00026 
-00030 struct Edge
-00031 {
-00032     uint32_t s, e;
-00033     Edge() : s(NOT_VALID_VERTEX), e(NOT_VALID_VERTEX){}
-00034     Edge(int s, int e) : s(s), e(e) {}
-00035     bool operator<(const Edge& b) const
-00036     {
-00037         if (s == b.s)
-00038             return e < b.e;
-00039         else
-00040             return s < b.s;
-00041     }
-00042 };
+

sdk/extensions/authoring/include/NvBlastExtAuthoringTypes.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTAUTHORINGTYPES_H
+00030 #define NVBLASTAUTHORINGTYPES_H
+00031 
+00032 #include <PxVec3.h>
+00033 #include <PxVec2.h>
+00034 #include <PxBounds3.h>
+00035 #include "NvBlastTypes.h"
+00036 
+00037 #define NOT_VALID_VERTEX INT32_MAX
+00038 
+00039 namespace Nv
+00040 {
+00041 namespace Blast
+00042 {
 00043 
-00047 struct Vertex
+00047 struct Edge
 00048 {
-00049     physx::PxVec3 p; // Position
-00050     physx::PxVec3 n; // Normal
-00051     physx::PxVec2 uv[1]; // UV-coordinates array, currently supported only one UV coordinate.
-00052 };
-00053 
-00057 struct Triangle
-00058 {
-00059     Triangle() {};
-00060     Triangle(Vertex a, Vertex b, Vertex c) : a(a), b(b), c(c) {};
-00061     Vertex a, b, c;
-00062     int32_t userInfo;
-00063     physx::PxVec3 getNormal()
-00064     {
-00065         return ((b.p - a.p).cross(c.p - a.p));
-00066     }
-00067 };
-00068 
-00069 
-00073 struct TriangleIndexed
-00074 {
-00075     TriangleIndexed() {};
-00076     TriangleIndexed(uint32_t a, uint32_t b, uint32_t c) : ea(a), eb(b), ec(c) {};
+00049     uint32_t s, e;
+00050     Edge() : s(NOT_VALID_VERTEX), e(NOT_VALID_VERTEX){}
+00051     Edge(int s, int e) : s(s), e(e) {}
+00052     bool operator<(const Edge& b) const
+00053     {
+00054         if (s == b.s)
+00055             return e < b.e;
+00056         else
+00057             return s < b.s;
+00058     }
+00059 };
+00060 
+00064 struct Vertex
+00065 {
+00066     physx::PxVec3 p; // Position
+00067     physx::PxVec3 n; // Normal
+00068     physx::PxVec2 uv[1]; // UV-coordinates array, currently supported only one UV coordinate.
+00069 };
+00070 
+00071 
+00072 // Interior material ID
+00073 #define MATERIAL_INTERIOR 1000
+00074 #define SMOOTHING_GROUP_INTERIOR 1000
+00075 
+00076 
 00077 
-00078     uint32_t getOpposite(uint32_t a, uint32_t b)
-00079     {
-00080         if (ea != a && ea != b)
-00081             return ea;
-00082         if (eb != a && eb != b)
-00083             return eb;
-00084         if (ec != a && ec != b)
-00085             return ec;
-00086         return NOT_VALID_VERTEX;
-00087     }
-00088 
-00089     bool isContainEdge(uint32_t a, uint32_t b)
+00081 struct Triangle
+00082 {
+00083     Triangle() {};
+00084     Triangle(Vertex a, Vertex b, Vertex c) : a(a), b(b), c(c) {};
+00085     Vertex a, b, c;
+00086     int32_t userData;
+00087     int32_t materialId;
+00088     int32_t smoothingGroup; // NOT SUPPORTED ATM.
+00089     physx::PxVec3 getNormal()
 00090     {
-00091         return (a == ea || a == eb || a == ec) && (b == ea || b == eb || b == ec);
+00091         return ((b.p - a.p).cross(c.p - a.p));
 00092     }
-00093 
-00094     uint32_t ea, eb, ec;
-00095     int32_t userInfo;
-00096 };
-00097 
-00101 struct Facet
-00102 {
-00103     int32_t     firstEdgeNumber;
-00104     uint32_t    edgesCount;
-00105     int32_t     userData;
-00106     Facet(int32_t fEdge = 0, uint32_t eCount = 0, int32_t userData = 0) : firstEdgeNumber(fEdge), edgesCount(eCount), userData(userData) {}
-00107 };
-00108 
-00112 class RandomGeneratorBase
-00113 {
-00114 public:
-00115     // Generates uniformly distributed value in [0, 1] range. 
-00116     virtual float   getRandomValue() = 0;
-00117     // Seeds random value generator
-00118     virtual void    seed(int32_t seed) = 0;
-00119     virtual ~RandomGeneratorBase() {};
-00120 };
-00121 
-00122 
-00123 
-00124 } // namespace Blast
-00125 } // namespace Nv
-00126 
-00127 
-00128 #endif // ifndef NVBLASTAUTHORINGTYPES_H
+00093 };
+00094 
+00095 
+00099 struct TriangleIndexed
+00100 {
+00101     TriangleIndexed() {};
+00102     TriangleIndexed(uint32_t a, uint32_t b, uint32_t c) : ea(a), eb(b), ec(c) {};
+00103 
+00104     uint32_t getOpposite(uint32_t a, uint32_t b)
+00105     {
+00106         if (ea != a && ea != b)
+00107             return ea;
+00108         if (eb != a && eb != b)
+00109             return eb;
+00110         if (ec != a && ec != b)
+00111             return ec;
+00112         return NOT_VALID_VERTEX;
+00113     }
+00114 
+00115     bool isContainEdge(uint32_t a, uint32_t b)
+00116     {
+00117         return (a == ea || a == eb || a == ec) && (b == ea || b == eb || b == ec);
+00118     }
+00119 
+00120     Triangle convertToTriangle(Vertex* vertices)
+00121     {
+00122         Triangle tr;
+00123         tr.a = vertices[ea];
+00124         tr.b = vertices[eb];
+00125         tr.c = vertices[ec];
+00126         
+00127         tr.userData = userData;
+00128         tr.materialId = materialId;
+00129         tr.smoothingGroup = smoothingGroup;
+00130         return tr;
+00131     }
+00132 
+00133     uint32_t ea, eb, ec;
+00134     int32_t materialId;
+00135     int32_t smoothingGroup;
+00136     int32_t userData;
+00137 };
+00138 
+00139 
+00140 
+00141 
+00145 struct Facet
+00146 {
+00147     int32_t     firstEdgeNumber;
+00148     uint32_t    edgesCount;
+00149     int32_t     userData;
+00150     int32_t     materialId;
+00151     int32_t     smoothingGroup;
+00152 
+00153     Facet(int32_t fEdge = 0, uint32_t eCount = 0, int32_t materialId = 0, int32_t userData = 0, int32_t smoothingGroup = 0) : firstEdgeNumber(fEdge), edgesCount(eCount), materialId(materialId), userData(userData), smoothingGroup(smoothingGroup) {}
+00154 };
+00155 
+00159 class RandomGeneratorBase
+00160 {
+00161 public:
+00162     // Generates uniformly distributed value in [0, 1] range. 
+00163     virtual float   getRandomValue() = 0;
+00164     // Seeds random value generator
+00165     virtual void    seed(int32_t seed) = 0;
+00166     virtual ~RandomGeneratorBase() {};
+00167 };
+00168 
+00172 struct CollisionHull
+00173 {
+00177     struct HullPolygon
+00178     {
+00179         // Polygon base plane
+00180         float       mPlane[4];
+00181         // Number vertices in polygon
+00182         uint16_t    mNbVerts;
+00183         // First index in CollisionHull.indices array for this polygon
+00184         uint16_t    mIndexBase;
+00185     };
+00187 
+00188     uint32_t        pointsCount;
+00189     uint32_t        indicesCount;
+00190     uint32_t        polygonDataCount;
+00191     physx::PxVec3*  points;
+00192     uint32_t*       indices;
+00193     HullPolygon*    polygonData;
+00194 
+00195     virtual ~CollisionHull() {}
+00196 
+00197     virtual void release() = 0;
+00198 };
+00199 
+00203 struct AuthoringResult
+00204 {
+00205     uint32_t                chunkCount; //Number of chunks in Blast asset
+00206 
+00207     uint32_t                bondCount; //Number of bonds in Blast asset
+00208 
+00209     NvBlastAsset*           asset; //Blast asset
+00210 
+00215     uint32_t*               assetToFractureChunkIdMap;
+00216 
+00222     uint32_t*               geometryOffset;
+00223 
+00224     Triangle*               geometry; //Raw array of Triangle for all chunks
+00225 
+00226     NvBlastChunkDesc*       chunkDescs; //Array of chunk descriptors. Contains chunkCount elements
+00227 
+00228     NvBlastBondDesc*        bondDescs; //Array of bond descriptors. Contains bondCount elements
+00229 
+00235     uint32_t*               collisionHullOffset;
+00236 
+00237     CollisionHull**         collisionHull; //Raw array of pointers to collision hull for all chunks.
+00238 
+00242     struct ExtPxChunk*      physicsChunks;
+00243 
+00248     struct ExtPxSubchunk*   physicsSubchunks;
+00249 
+00253     char** materialNames;
+00258     uint32_t materialCount;
+00259 
+00261     virtual ~AuthoringResult() {}
+00262 
+00266     virtual void releaseCollisionHulls() = 0;
+00267 
+00271     virtual void release() = 0;
+00272 };
+00273 
+00274 
+00275 } // namespace Blast
+00276 } // namespace Nv
+00277 
+00278 
+00279 #endif // ifndef NVBLASTAUTHORINGTYPES_H
 
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 new file mode 100644 index 0000000..510c1e6 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html @@ -0,0 +1,171 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtCustomProfiler.h Source File + + + + + + + +

sdk/extensions/physx/include/NvBlastExtCustomProfiler.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTDEFAULTPROFILER_H
+00030 #define NVBLASTDEFAULTPROFILER_H
+00031 
+00032 #include "NvBlastProfiler.h"
+00033 #include "PxProfiler.h"
+00034 
+00035 #if NV_NVTX  
+00036 #include "nvToolsExt.h"
+00037 NV_INLINE void platformZoneStart(const char* name) { nvtxRangePushA(name); }
+00038 NV_INLINE void platformZoneEnd() { nvtxRangePop(); }
+00039 
+00040 #elif NV_XBOXONE
+00041 #include "xboxone/NvBlastProfilerXB1.h"
+00042 
+00043 #elif NV_PS4
+00044 #include "ps4/NvBlastProfilerPS4.h"
+00045 
+00046 #else
+00047 NV_INLINE void platformZoneStart(const char*) { }
+00048 NV_INLINE void platformZoneEnd() { }
+00049 
+00050 #endif
+00051 
+00052 #define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC > 12)
+00053 
+00054 namespace Nv
+00055 {
+00056 namespace Blast
+00057 {
+00058 
+00059 struct ExtProfileData
+00060 {
+00061     const char* name;
+00062     void* data;
+00063 };
+00064 
+00065 #if SUPPORTS_THREAD_LOCAL
+00066 static const int32_t PROFILER_MAX_NESTED_DEPTH = 64;
+00067 static thread_local ExtProfileData th_ProfileData[PROFILER_MAX_NESTED_DEPTH];
+00068 static thread_local int32_t th_depth = 0;
+00069 #endif
+00070 
+00071 class ExtCustomProfiler : public ProfilerCallback
+00072 {
+00073 public:
+00074     ExtCustomProfiler() : m_platformEnabled(false) {}
+00075 
+00076     virtual void zoneStart(const char* name) override
+00077     {
+00078 
+00079 #if SUPPORTS_THREAD_LOCAL
+00080         if (PxGetProfilerCallback())
+00081         {
+00082             void* data = PxGetProfilerCallback()->zoneStart(name, false, 0xb1a57);
+00083 
+00084             if (th_depth < PROFILER_MAX_NESTED_DEPTH && th_depth >= 0)
+00085             {
+00086                 th_ProfileData[th_depth].name = name;
+00087                 th_ProfileData[th_depth].data = data;
+00088                 th_depth++;
+00089             }
+00090             else
+00091             {
+00092                 assert(th_depth < PROFILER_MAX_NESTED_DEPTH && th_depth >= 0);
+00093             }
+00094         }
+00095 #endif
+00096 
+00097         if (m_platformEnabled)
+00098         {
+00099             platformZoneStart(name);
+00100         }
+00101     }
+00102 
+00103     virtual void zoneEnd() override
+00104     {
+00105 
+00106 #if SUPPORTS_THREAD_LOCAL
+00107         if (PxGetProfilerCallback())
+00108         {
+00109             th_depth--;
+00110 
+00111             if (th_depth >= 0)
+00112             {
+00113                 ExtProfileData& pd = th_ProfileData[th_depth];
+00114                 PxGetProfilerCallback()->zoneEnd(pd.data, pd.name, false, 0xb1a57);
+00115             }
+00116             else
+00117             {
+00118                 assert(th_depth >= 0);
+00119             }
+00120         }
+00121 #endif
+00122 
+00123         if (m_platformEnabled)
+00124         {
+00125             platformZoneEnd();
+00126         }
+00127     }
+00128 
+00129 
+00130     void setPlatformEnabled(bool enabled)
+00131     {
+00132         m_platformEnabled = enabled;
+00133     }
+00134 
+00135 private:
+00136     bool m_platformEnabled;
+00137 };
+00138 
+00139 } // namespace Blast
+00140 } // namespace Nv
+00141 
+00142 
+00143 #endif
+
+ + + + 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 new file mode 100644 index 0000000..13b5fa4 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html @@ -0,0 +1,110 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtCustomProfiler.h File Reference + + + + + + + +
+

sdk/extensions/physx/include/NvBlastExtCustomProfiler.h File Reference

#include "NvBlastProfiler.h"
+#include "PxProfiler.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + +

Classes

class  Nv::Blast::ExtCustomProfiler
struct  Nv::Blast::ExtProfileData

Namespaces

namespace  Nv
namespace  Nv::Blast

Defines

#define SUPPORTS_THREAD_LOCAL   (!NV_VC || NV_VC > 12)

Functions

NV_INLINE void platformZoneEnd ()
NV_INLINE void platformZoneStart (const char *)
+


Define Documentation

+ +
+
+ + + + +
#define SUPPORTS_THREAD_LOCAL   (!NV_VC || NV_VC > 12)
+
+
+ +

+ +

+

+


Function Documentation

+ +
+
+ + + + + + + + +
NV_INLINE void platformZoneEnd (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
NV_INLINE void platformZoneStart (const char *   ) 
+
+
+ +

+ +

+

+

+ + + + 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 0e3a2ca..4fc4fa3 100644 --- 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 @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/shaders/include/NvBlastExtDamageShaders.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/shaders/include/NvBlastExtDamageShaders.h Source File @@ -19,67 +19,111 @@
-

sdk/extensions/shaders/include/NvBlastExtDamageShaders.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTDAMAGESHADERS_H
-00012 #define NVBLASTEXTDAMAGESHADERS_H
-00013 
-00014 #include "NvBlastTypes.h"
-00015 #include "NvBlastPreprocessor.h"
-00016 
-00022 
-00023 //  Common Material 
-00025 
-00031 struct NvBlastExtMaterial
-00032 {
-00033     float   singleChunkThreshold;       
-00034     float   graphChunkThreshold;        
-00035     float   bondTangentialThreshold;    
-00036     float   bondNormalThreshold;        
-00037     float   damageAttenuation;          
-00038 };
-00039 
+

sdk/extensions/shaders/include/NvBlastExtDamageShaders.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTDAMAGESHADERS_H
+00030 #define NVBLASTEXTDAMAGESHADERS_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 
 00040 
-00042 //  Radial Damage
-00044 
-00048 struct NvBlastExtRadialDamageDesc
-00049 {
-00050     float   compressive;    
-00051     float   position[3];    
-00052     float   minRadius;      
-00053     float   maxRadius;      
-00054 };
-00055 
-00063 NVBLAST_API void NvBlastExtFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
-00064 NVBLAST_API void NvBlastExtFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
-00065 NVBLAST_API void NvBlastExtCutterGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
-00066 NVBLAST_API void NvBlastExtCutterSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
-00067 
-00068 
-00084 NVBLAST_API bool NvBlastExtDamageActorRadialFalloff(NvBlastActor* actor, NvBlastFractureBuffers* buffers, const NvBlastExtRadialDamageDesc* damageDescBuffer, uint32_t damageDescCount, const NvBlastExtMaterial* material, NvBlastLog logFn, NvBlastTimers* timers);
-00085 
-00086 
-00088 //  Shear Damage
-00090 
-00094 struct NvBlastExtShearDamageDesc
-00095 {
-00096     float   shear[3];       
-00097     float   position[3];    
-00098 };
-00099 
-00107 NVBLAST_API void NvBlastExtShearGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
-00108 NVBLAST_API void NvBlastExtShearSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
-00109 
-00110 
-00111 #endif // NVBLASTEXTDAMAGESHADERS_H
+00041 //  Common Material 
+00043 
+00050 struct NvBlastExtMaterial
+00051 {
+00052     NvBlastExtMaterial() : health(100.f), minDamageThreshold(0.0f), maxDamageThreshold(1.0f) {}
+00053 
+00054     float   health;                 
+00055     float   minDamageThreshold;     
+00056     float   maxDamageThreshold;     
+00057 
+00068     float getNormalizedDamage(float damageInHealth) const
+00069     {
+00070         const float damage = health > 0.f ? damageInHealth / health : 1.0f;
+00071         return damage > minDamageThreshold ? (damage < maxDamageThreshold ? damage : maxDamageThreshold) : 0.f;
+00072     }
+00073 };
+00074 
+00075 
+00077 //  Point Radial Damage
+00079 
+00083 struct NvBlastExtRadialDamageDesc
+00084 {
+00085     float   damage;         
+00086     float   position[3];    
+00087     float   minRadius;      
+00088     float   maxRadius;      
+00089 };
+00090 
+00098 NVBLAST_API void NvBlastExtFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
+00099 NVBLAST_API void NvBlastExtFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
+00100 NVBLAST_API void NvBlastExtCutterGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
+00101 NVBLAST_API void NvBlastExtCutterSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
+00102 
+00103 
+00119 NVBLAST_API bool NvBlastExtDamageActorRadialFalloff(NvBlastActor* actor, NvBlastFractureBuffers* buffers, const NvBlastExtRadialDamageDesc* damageDescBuffer, uint32_t damageDescCount, const NvBlastExtMaterial* material, NvBlastLog logFn, NvBlastTimers* timers);
+00120 
+00121 
+00123 //  Segment Radial Damage
+00125 
+00129 struct NvBlastExtSegmentRadialDamageDesc
+00130 {
+00131     float   damage;         
+00132     float   position0[3];   
+00133     float   position1[3];   
+00134     float   minRadius;      
+00135     float   maxRadius;      
+00136 };
+00137 
+00148 NVBLAST_API void NvBlastExtSegmentFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
+00149 NVBLAST_API void NvBlastExtSegmentFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
+00150 
+00151 
+00153 //  Shear Damage
+00155 
+00159 struct NvBlastExtShearDamageDesc
+00160 {
+00161     float   damage;         
+00162 
+00163     float   normal[3];      
+00164     float   position[3];    
+00165 
+00166     float   minRadius;      
+00167     float   maxRadius;      
+00168 };
+00169 
+00177 NVBLAST_API void NvBlastExtShearGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
+00178 NVBLAST_API void NvBlastExtShearSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
+00179 
+00180 
+00181 #endif // NVBLASTEXTDAMAGESHADERS_H
 

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void NvBlastExtSegmentFalloffSubgraphShader (NvBlastFractureBuffers commandBuffers,
const NvBlastSubgraphShaderActor actor,
const NvBlastProgramParams params 
)
+
+
+ +

+

diff --git a/docs/api_docs/files/_nv_blast_ext_data_converter_8h-source.html b/docs/api_docs/files/_nv_blast_ext_data_converter_8h-source.html deleted file mode 100644 index b66a5db..0000000 --- a/docs/api_docs/files/_nv_blast_ext_data_converter_8h-source.html +++ /dev/null @@ -1,57 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/converter/include/NvBlastExtDataConverter.h Source File - - - - - -

- -

sdk/extensions/converter/include/NvBlastExtDataConverter.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTDATACONVERTER_H
-00012 #define NVBLASTEXTDATACONVERTER_H
-00013 
-00014 
-00015 #include "NvBlast.h"
-00016 #include <vector>
-00017 
-00018 namespace Nv
-00019 {
-00020 namespace Blast
-00021 {
-00033     NVBLAST_API bool convertDataBlock(std::vector<char>& outBlock, const std::vector<char>& inBlock, uint32_t* outBlockVersion = nullptr);
-00034 
-00035 
-00036 } // namespace Blast
-00037 } // namespace Nv
-00038 
-00039 
-00040 #endif // ifndef NVBLASTEXTDATACONVERTER_H
-
- - - - diff --git a/docs/api_docs/files/_nv_blast_ext_data_converter_8h.html b/docs/api_docs/files/_nv_blast_ext_data_converter_8h.html deleted file mode 100644 index 23eb6b3..0000000 --- a/docs/api_docs/files/_nv_blast_ext_data_converter_8h.html +++ /dev/null @@ -1,44 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/converter/include/NvBlastExtDataConverter.h File Reference - - - - - - - -
-

sdk/extensions/converter/include/NvBlastExtDataConverter.h File Reference

#include "NvBlast.h"
-#include <vector>
- -

-Go to the source code of this file. - - - - - - - - - -

Namespaces

namespace  Nv
namespace  Nv::Blast

Functions

bool Nv::Blast::convertDataBlock (std::vector< char > &outBlock, const std::vector< char > &inBlock, uint32_t *outBlockVersion=nullptr)
-

- - - - 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 new file mode 100644 index 0000000..6824d4e --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_exporter_8h-source.html @@ -0,0 +1,186 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/exporter/include/NvBlastExtExporter.h Source File + + + + + + + +

sdk/extensions/exporter/include/NvBlastExtExporter.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTEXPORTER_H
+00030 #define NVBLASTEXTEXPORTER_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 struct NvBlastAsset;
+00035 
+00036 namespace physx
+00037 {
+00038 class PxVec2;
+00039 class PxVec3;
+00040 }
+00041 
+00042 namespace Nv
+00043 {
+00044 namespace Blast
+00045 {
+00046 struct AuthoringResult;
+00047 struct CollisionHull;
+00048 
+00049 struct ExporterMeshData
+00050 {
+00051     NvBlastAsset* asset; //Blast asset
+00052 
+00053     uint32_t positionsCount; //Number of positions
+00054 
+00055     uint32_t normalsCount; //Number of normals
+00056 
+00057     uint32_t uvsCount; //Number of textures uv
+00058 
+00059     physx::PxVec3* positions; //Array of positions
+00060 
+00061     physx::PxVec3* normals; //Array of normals
+00062 
+00063     physx::PxVec2* uvs; //Array of textures uv
+00064 
+00065     uint32_t meshCount; //Number of meshes (chunks)
+00066 
+00067     uint32_t submeshCount; //Number of submeshes
+00068 
+00069     const char** submeshNames; //Equal to material names
+00070 
+00071 
+00077     uint32_t* submeshOffsets;
+00078 
+00079     uint32_t* posIndex; //Array of position indices
+00080 
+00081     uint32_t* normIndex; //Array of normals indices
+00082 
+00083     uint32_t* texIndex; //Array of texture indices
+00084 
+00085 
+00091     uint32_t* hullsOffsets;
+00092 
+00093     CollisionHull** hulls; //Array of pointers to hull for all meshes
+00094 };
+00095 
+00099 class IMeshFileReader
+00100 {
+00101 public:
+00102     
+00106     virtual void            release() = 0;
+00107 
+00108     /*
+00109         Load from the specified file path
+00110     */
+00111     virtual void            loadFromFile(const char* filename) = 0;
+00112 
+00116     virtual uint32_t        getVerticesCount() const = 0;
+00117 
+00121     virtual uint32_t        getIdicesCount() const = 0;
+00122 
+00126     virtual physx::PxVec3*  getPositionArray() = 0;
+00127 
+00131     virtual physx::PxVec3*  getNormalsArray() = 0;
+00132 
+00136     virtual physx::PxVec2*  getUvArray() = 0;
+00137 
+00141     virtual int32_t*        getMaterialIds() = 0;
+00142 
+00146     virtual int32_t*        getSmoothingGroups() = 0;
+00147 
+00151     virtual char*           getMaterialName(int32_t id) = 0;
+00152 
+00156     virtual int32_t         getMaterialCount() = 0;
+00157 
+00158 
+00159 
+00163     virtual uint32_t*       getIndexArray() = 0;
+00164 
+00165 
+00169     virtual bool            isCollisionLoaded() = 0;
+00170 
+00179     virtual uint32_t        getCollision(uint32_t*& hullsOffset, CollisionHull** hulls) = 0;
+00180 
+00181 };
+00182 
+00186 class IFbxFileReader : public IMeshFileReader
+00187 {
+00188 public:
+00196     virtual uint32_t getBoneInfluences(uint32_t*& out) = 0;
+00197 
+00201     virtual uint32_t getBoneCount() = 0;
+00202 };
+00203 
+00207 class IMeshFileWriter
+00208 {
+00209 public:
+00210 
+00214     virtual void release() = 0;
+00215 
+00219     virtual bool appendMesh(const AuthoringResult& aResult, const char* assetName, bool nonSkinned = false) = 0;
+00220 
+00224     virtual bool appendMesh(const ExporterMeshData& meshData, const char* assetName, bool nonSkinned = false) = 0;
+00225 
+00229     virtual bool saveToFile(const char* assetName, const char* outputPath) = 0;
+00230 };
+00231 
+00232 }
+00233 }
+00234 
+00238 NVBLAST_API Nv::Blast::IMeshFileReader* NvBlastExtExporterCreateObjFileReader();
+00239 
+00243 NVBLAST_API Nv::Blast::IFbxFileReader* NvBlastExtExporterCreateFbxFileReader();
+00244 
+00248 NVBLAST_API Nv::Blast::IMeshFileWriter* NvBlastExtExporterCreateObjFileWriter();
+00249 
+00255 NVBLAST_API Nv::Blast::IMeshFileWriter* NvBlastExtExporterCreateFbxFileWriter(bool outputFBXAscii = false);
+00256 
+00257 #endif //NVBLASTEXTEXPORTER_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_exporter_8h.html b/docs/api_docs/files/_nv_blast_ext_exporter_8h.html new file mode 100644 index 0000000..6189af9 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_exporter_8h.html @@ -0,0 +1,144 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/exporter/include/NvBlastExtExporter.h File Reference + + + + + + + +
+

sdk/extensions/exporter/include/NvBlastExtExporter.h File Reference

#include "NvBlastTypes.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

struct  Nv::Blast::ExporterMeshData
class  Nv::Blast::IFbxFileReader
class  Nv::Blast::IMeshFileReader
class  Nv::Blast::IMeshFileWriter

Namespaces

namespace  Nv
namespace  Nv::Blast
namespace  physx

Functions

Nv::Blast::IFbxFileReaderNvBlastExtExporterCreateFbxFileReader ()
Nv::Blast::IMeshFileWriterNvBlastExtExporterCreateFbxFileWriter (bool outputFBXAscii=false)
Nv::Blast::IMeshFileReaderNvBlastExtExporterCreateObjFileReader ()
Nv::Blast::IMeshFileWriterNvBlastExtExporterCreateObjFileWriter ()
+


Function Documentation

+ +
+
+ + + + + + + + +
Nv::Blast::IFbxFileReader* NvBlastExtExporterCreateFbxFileReader (  ) 
+
+
+ +

+Creates an instance of IFbxFileReader for reading fbx file. +

+

+ +

+
+ + + + + + + + + +
Nv::Blast::IMeshFileWriter* NvBlastExtExporterCreateFbxFileWriter (bool  outputFBXAscii = false  ) 
+
+
+ +

+Creates an instance of IMeshFileWriter for writing fbx file.

+

Parameters:
+ + +
[in] outputFBXAscii If true writes fbx in ascii format otherwise write in binary.
+
+ +
+

+ +

+
+ + + + + + + + +
Nv::Blast::IMeshFileReader* NvBlastExtExporterCreateObjFileReader (  ) 
+
+
+ +

+Creates an instance of IMeshFileReader for reading obj file. +

+

+ +

+
+ + + + + + + + +
Nv::Blast::IMeshFileWriter* NvBlastExtExporterCreateObjFileWriter (  ) 
+
+
+ +

+Creates an instance of IMeshFileWriter for writing obj file. +

+

+

+ + + + 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 new file mode 100644 index 0000000..600738f --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h-source.html @@ -0,0 +1,82 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/exporter/include/NvBlastExtExporterJsonCollision.h Source File + + + + + + + +

sdk/extensions/exporter/include/NvBlastExtExporterJsonCollision.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTEXPORTERJSONCOLLISION_H
+00030 #define NVBLASTEXTEXPORTERJSONCOLLISION_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 namespace Nv
+00035 {
+00036 namespace Blast
+00037 {
+00038 
+00039 
+00040 struct CollisionHull;
+00041 
+00045 class JsonCollisionExporter
+00046 {
+00047 public: 
+00048     JsonCollisionExporter(){};
+00049 
+00055     bool writeCollision(const char* path, uint32_t meshCount, const uint32_t* meshOffsets, const CollisionHull* hulls);
+00056 };
+00057 
+00058 
+00059 } // namespace Blast
+00060 } // namespace Nv
+00061 
+00062 #endif //NVBLASTEXTEXPORTERJSONCOLLISION_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h.html b/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h.html new file mode 100644 index 0000000..5171be2 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h.html @@ -0,0 +1,43 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/exporter/include/NvBlastExtExporterJsonCollision.h File Reference + + + + + + + +
+

sdk/extensions/exporter/include/NvBlastExtExporterJsonCollision.h File Reference

#include "NvBlastTypes.h"
+ +

+Go to the source code of this file. + + + + + + + + + +

Classes

class  Nv::Blast::JsonCollisionExporter

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + 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 9c12af2..39ff951 100644 --- 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 @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/physx/include/NvBlastExtImpactDamageManager.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtImpactDamageManager.h Source File @@ -19,94 +19,123 @@
-

sdk/extensions/physx/include/NvBlastExtImpactDamageManager.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H
-00012 #define NVBLASTEXTIMPACTDAMAGEMANAGER_H
-00013 
-00014 #include "PxFiltering.h"
-00015 #include "NvPreprocessor.h"
-00016 
-00017 // Forward declarations
-00018 namespace physx
-00019 {
-00020 struct PxContactPair;
-00021 struct PxContactPairHeader;
-00022 }
-00023 
-00024 
-00025 namespace Nv
-00026 {
-00027 namespace Blast
-00028 {
-00029 
-00030 // Forward declarations
-00031 class ExtPxActor;
-00032 class ExtPxManager;
-00033 
+

sdk/extensions/physx/include/NvBlastExtImpactDamageManager.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H
+00030 #define NVBLASTEXTIMPACTDAMAGEMANAGER_H
+00031 
+00032 #include "PxFiltering.h"
+00033 #include "NvPreprocessor.h"
 00034 
-00038 typedef bool(*ExtImpactDamageFunction)(void* data, ExtPxActor* actor, physx::PxShape* shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce);
-00039 
-00040 
-00044 struct ExtImpactSettings
-00045 {
-00046     bool                    isSelfCollissionEnabled;    
-00047     float                   fragility;                  
-00048     ExtImpactDamageFunction damageFunction;             
-00049     void*                   damageFunctionData;         
-00050 
+00035 // Forward declarations
+00036 namespace physx
+00037 {
+00038 struct PxContactPair;
+00039 struct PxContactPairHeader;
+00040 }
+00041 
+00042 
+00043 namespace Nv
+00044 {
+00045 namespace Blast
+00046 {
+00047 
+00048 // Forward declarations
+00049 class ExtPxActor;
+00050 class ExtPxManager;
 00051 
-00052     ExtImpactSettings() :
-00053         isSelfCollissionEnabled(false),
-00054         fragility(1.0f),
-00055         damageFunction(nullptr)
-00056     {}
-00057 };
+00052 
+00056 typedef bool(*ExtImpactDamageFunction)(void* data, ExtPxActor* actor, physx::PxShape* shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce);
+00057 
 00058 
-00059 
-00067 class NV_DLL_EXPORT ExtImpactDamageManager
-00068 {
-00069 public:
-00071 
-00080     static ExtImpactDamageManager*  create(ExtPxManager* pxManager, ExtImpactSettings settings = ExtImpactSettings());
-00081 
-00085     virtual void                    release() = 0;
-00086 
+00062 struct ExtImpactSettings
+00063 {
+00064     bool                    isSelfCollissionEnabled;    
+00065     bool                    shearDamage;                
+00066     float                   impulseMinThreshold;        
+00067     float                   impulseMaxThreshold;        
+00068     float                   damageMax;                  
+00069     float                   damageRadiusMax;            
+00070     float                   damageAttenuation;          
+00071     ExtImpactDamageFunction damageFunction;             
+00072     void*                   damageFunctionData;         
+00073 
+00074 
+00075     ExtImpactSettings() :
+00076         isSelfCollissionEnabled(false),
+00077         shearDamage(true),
+00078         impulseMinThreshold(0.0f),
+00079         impulseMaxThreshold(1000000.0f),
+00080         damageMax(100.f),
+00081         damageRadiusMax(5.0f),
+00082         damageAttenuation(1.f),
+00083         damageFunction(nullptr),
+00084         damageFunctionData(nullptr)
+00085     {}
+00086 };
 00087 
-00089 
-00095     virtual void                    setSettings(const ExtImpactSettings& settings) = 0;
-00096 
-00110     virtual void                    onContact(const physx::PxContactPairHeader& pairHeader, const physx::PxContactPair* pairs, uint32_t nbPairs) = 0;
-00111 
-00112 
-00116     virtual void                    applyDamage() = 0;
-00117 
+00088 
+00096 class NV_DLL_EXPORT ExtImpactDamageManager
+00097 {
+00098 public:
+00100 
+00109     static ExtImpactDamageManager*  create(ExtPxManager* pxManager, ExtImpactSettings settings = ExtImpactSettings());
+00110 
+00114     virtual void                    release() = 0;
+00115 
+00116 
 00118 
-00120 
-00127     static physx::PxFilterFlags     FilterShader(
-00128         physx::PxFilterObjectAttributes attributes0,
-00129         physx::PxFilterData filterData0,
-00130         physx::PxFilterObjectAttributes attributes1,
-00131         physx::PxFilterData filterData1,
-00132         physx::PxPairFlags& pairFlags,
-00133         const void* constantBlock,
-00134         uint32_t constantBlockSize);
-00135 
-00136 };
-00137 
-00138 } // namespace Blast
-00139 } // namespace Nv
+00124     virtual void                    setSettings(const ExtImpactSettings& settings) = 0;
+00125 
+00139     virtual void                    onContact(const physx::PxContactPairHeader& pairHeader, const physx::PxContactPair* pairs, uint32_t nbPairs) = 0;
 00140 
 00141 
-00142 #endif // ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H
+00145     virtual void                    applyDamage() = 0;
+00146 
+00147 
+00149 
+00156     static physx::PxFilterFlags     FilterShader(
+00157         physx::PxFilterObjectAttributes attributes0,
+00158         physx::PxFilterData filterData0,
+00159         physx::PxFilterObjectAttributes attributes1,
+00160         physx::PxFilterData filterData1,
+00161         physx::PxPairFlags& pairFlags,
+00162         const void* constantBlock,
+00163         uint32_t constantBlockSize);
+00164 
+00165 };
+00166 
+00167 } // namespace Blast
+00168 } // namespace Nv
+00169 
+00170 
+00171 #endif // ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H
 
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h.html b/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h.html new file mode 100644 index 0000000..f9ab22d --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h.html @@ -0,0 +1,171 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/serialization/include/NvBlastExtLlSerialization.h File Reference + + + + + + + +
+

sdk/extensions/serialization/include/NvBlastExtLlSerialization.h File Reference

#include "NvBlastGlobals.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + +

Classes

struct  Nv::Blast::LlObjectTypeID

Namespaces

namespace  Nv
namespace  Nv::Blast

Functions

size_t NvBlastExtLlSerializerLoadSet (Nv::Blast::ExtSerialization &serialization)
uint64_t NvBlastExtSerializationSerializeAssetIntoBuffer (void *&buffer, Nv::Blast::ExtSerialization &serialization, const NvBlastAsset *asset)
uint64_t NvBlastExtSerializationSerializeFamilyIntoBuffer (void *&buffer, Nv::Blast::ExtSerialization &serialization, const NvBlastFamily *family)
+


Function Documentation

+ +
+
+ + + + + + + + + +
size_t NvBlastExtLlSerializerLoadSet (Nv::Blast::ExtSerialization serialization  ) 
+
+
+ +

+Load all low-level serializers into the ExtSerialization manager. *N.B.* This is done automatically when the ExtSerialization manager is created via NvBlastExtSerializationCreate(), so currently this public function is unnecessary. Note also that other modules' serializers (ExtTkSerialization and ExtPxSerialization) are _not_ loaded automatically, and need to be explicitly loaded by the user using their respective load functions.

+It does no harm to call this function more than once; serializers already loaded will not be loaded again.

+

Parameters:
+ + +
[in] serialization Serialization manager into which to load serializers.
+
+
Returns:
the number of serializers loaded.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t NvBlastExtSerializationSerializeAssetIntoBuffer (void *&  buffer,
Nv::Blast::ExtSerialization serialization,
const NvBlastAsset asset 
)
+
+
+ +

+Utility wrapper function to serialize an NvBlastAsset. Allocates the buffer internally using the callack set in ExtSerialization::setBufferProvider.

+Equivalent to:

+serialization.serializeIntoBuffer(buffer, asset, Nv::Blast::LlObjectTypeID::Asset);

+

Parameters:
+ + + + +
[out] buffer Pointer to the buffer created.
[in] serialization Serialization manager.
[in] asset Pointer to the NvBlastAsset to serialize.
+
+
Returns:
the number of bytes serialized into the buffer (zero if unsuccessful).
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t NvBlastExtSerializationSerializeFamilyIntoBuffer (void *&  buffer,
Nv::Blast::ExtSerialization serialization,
const NvBlastFamily family 
)
+
+
+ +

+Utility wrapper function to serialize an NvBlastFamily. Allocates the buffer internally using the callack set in ExtSerialization::setBufferProvider.

+Equivalent to:

+serialization.serializeIntoBuffer(buffer, family, Nv::Blast::LlObjectTypeID::Family);

+

Parameters:
+ + + + +
[out] buffer Pointer to the buffer created.
[in] serialization Serialization manager.
[in] family Pointer to the NvBlastFamily to serialize.
+
+
Returns:
the number of bytes serialized into the buffer (zero if unsuccessful).
+ +
+

+

+ + + + 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 6c22e52..68c35a6 100644 --- a/docs/api_docs/files/_nv_blast_ext_px_8h-source.html +++ b/docs/api_docs/files/_nv_blast_ext_px_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/physx/include/NvBlastExtPx.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtPx.h Source File @@ -19,28 +19,46 @@
-

sdk/extensions/physx/include/NvBlastExtPx.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTPX_H
-00012 #define NVBLASTEXTPX_H
-00013 
-00014 
-00022 #include "NvBlastExtPxActor.h"
-00023 #include "NvBlastExtPxAsset.h"
-00024 #include "NvBlastExtPxFamily.h"
-00025 #include "NvBlastExtPxListener.h"
-00026 #include "NvBlastExtPxManager.h"
+

sdk/extensions/physx/include/NvBlastExtPx.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
 00027 
 00028 
-00029 #endif // ifndef NVBLASTEXTPX_H
+00029 #ifndef NVBLASTEXTPX_H
+00030 #define NVBLASTEXTPX_H
+00031 
+00032 
+00040 #include "NvBlastExtPxActor.h"
+00041 #include "NvBlastExtPxAsset.h"
+00042 #include "NvBlastExtPxFamily.h"
+00043 #include "NvBlastExtPxListener.h"
+00044 #include "NvBlastExtPxManager.h"
+00045 
+00046 
+00047 #endif // ifndef NVBLASTEXTPX_H
 
-

sdk/extensions/physx/include/NvBlastExtPxActor.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTPXACTOR_H
-00012 #define NVBLASTEXTPXACTOR_H
-00013 
-00014 #include "NvBlastTypes.h"
-00015 
-00016 
-00017 // Forward declarations
-00018 namespace physx
-00019 {
-00020     class PxRigidDynamic;
-00021 }
-00022 
-00023 
-00024 namespace Nv
-00025 {
-00026 namespace Blast
-00027 {
+

sdk/extensions/physx/include/NvBlastExtPxActor.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
 00028 
-00029 // Forward declarations
-00030 class ExtPxFamily;
-00031 class TkActor;
-00032 
+00029 #ifndef NVBLASTEXTPXACTOR_H
+00030 #define NVBLASTEXTPXACTOR_H
+00031 
+00032 #include "NvBlastTypes.h"
 00033 
-00039 class ExtPxActor
-00040 {
-00041 public:
-00047     virtual uint32_t                getChunkCount() const = 0;
-00048 
-00054     virtual const uint32_t*         getChunkIndices() const = 0;
-00055 
-00061     virtual physx::PxRigidDynamic&  getPhysXActor() const = 0;
-00062 
-00068     virtual TkActor&                getTkActor() const = 0;
-00069 
-00075     virtual ExtPxFamily&            getFamily() const = 0;
-00076 };
-00077 
-00078 
-00079 } // namespace Blast
-00080 } // namespace Nv
-00081 
-00082 
-00083 #endif // ifndef NVBLASTEXTPXACTOR_H
+00034 
+00035 // Forward declarations
+00036 namespace physx
+00037 {
+00038     class PxRigidDynamic;
+00039 }
+00040 
+00041 
+00042 namespace Nv
+00043 {
+00044 namespace Blast
+00045 {
+00046 
+00047 // Forward declarations
+00048 class ExtPxFamily;
+00049 class TkActor;
+00050 
+00051 
+00057 class ExtPxActor
+00058 {
+00059 public:
+00065     virtual uint32_t                getChunkCount() const = 0;
+00066 
+00072     virtual const uint32_t*         getChunkIndices() const = 0;
+00073 
+00079     virtual physx::PxRigidDynamic&  getPhysXActor() const = 0;
+00080 
+00086     virtual TkActor&                getTkActor() const = 0;
+00087 
+00093     virtual ExtPxFamily&            getFamily() const = 0;
+00094 };
+00095 
+00096 
+00097 } // namespace Blast
+00098 } // namespace Nv
+00099 
+00100 
+00101 #endif // ifndef NVBLASTEXTPXACTOR_H
 
-

sdk/extensions/physx/include/NvBlastExtPxAsset.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTPXASSET_H
-00012 #define NVBLASTEXTPXASSET_H
-00013 
-00014 #include "NvBlastTkFramework.h"
-00015 #include "PxConvexMeshGeometry.h"
-00016 #include "PxTransform.h"
-00017 #include "NvBlastPreprocessor.h"
-00018 
-00019 
-00020 // Forward declarations
-00021 namespace physx
-00022 {
-00023 class PxCooking;
-00024 
-00025 namespace general_PxIOStream2
-00026 {
-00027 class PxFileBuf;
-00028 }
-00029 }
-00030 
-00031 
-00032 namespace Nv
-00033 {
-00034 namespace Blast
-00035 {
+

sdk/extensions/physx/include/NvBlastExtPxAsset.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTPXASSET_H
+00030 #define NVBLASTEXTPXASSET_H
+00031 
+00032 #include "NvBlastTkFramework.h"
+00033 #include "PxConvexMeshGeometry.h"
+00034 #include "PxTransform.h"
+00035 #include "NvBlastPreprocessor.h"
 00036 
 00037 
-00044 struct ExtPxAssetDesc : public TkAssetDesc
-00045 {
-00051     struct SubchunkDesc
-00052     {
-00053         physx::PxTransform          transform;          
-00054         physx::PxConvexMeshGeometry geometry;           
-00055     };
-00056 
-00062     struct ChunkDesc
-00063     {
-00064         SubchunkDesc*   subchunks;          
-00065         uint32_t        subchunkCount;      
-00066         bool            isStatic;           
-00067     };
-00068 
-00069     ChunkDesc*  pxChunks;       
-00070 };
-00071 
-00072 
-00078 struct ExtPxSubchunk
-00079 {
-00080     physx::PxTransform          transform;          
-00081     physx::PxConvexMeshGeometry geometry;           
-00082 };
-00083 
-00084 
-00090 struct ExtPxChunk
-00091 {
-00092     uint32_t    firstSubchunkIndex; 
-00093     uint32_t    subchunkCount;      
-00094     bool        isStatic;           
-00095 };
-00096 
-00097 
-00103 class NV_DLL_EXPORT ExtPxAsset
-00104 {
-00105 public:
-00106 
-00115     static ExtPxAsset*              create(const ExtPxAssetDesc& desc, TkFramework& framework);
-00116 
-00117 
-00118     /*
-00119         Factory method for deserialization
-00120 
-00121         Doesn't specify chunks or subchunks as they'll be fed in during deserialization to avoid copying stuff around.
-00122     
-00123     */
-00124     static ExtPxAsset*              create(TkAsset* asset);
-00125 
-00126 
-00136     static ExtPxAsset*              deserialize(physx::general_PxIOStream2::PxFileBuf& stream, TkFramework& framework, physx::PxPhysics& physics);
-00137 
-00141     virtual void                    release() = 0;
-00142 
-00151     virtual bool                    serialize(physx::general_PxIOStream2::PxFileBuf& stream, physx::PxCooking& cooking) const = 0;
-00152     
-00158     virtual const TkAsset&          getTkAsset() const = 0;
-00159 
-00165     virtual uint32_t                getChunkCount() const = 0;
+00038 // Forward declarations
+00039 namespace physx
+00040 {
+00041 class PxCooking;
+00042 
+00043 namespace general_PxIOStream2
+00044 {
+00045 class PxFileBuf;
+00046 }
+00047 }
+00048 
+00049 
+00050 namespace Nv
+00051 {
+00052 namespace Blast
+00053 {
+00054 
+00055 
+00062 struct ExtPxAssetDesc : public TkAssetDesc
+00063 {
+00069     struct SubchunkDesc
+00070     {
+00071         physx::PxTransform          transform;          
+00072         physx::PxConvexMeshGeometry geometry;           
+00073     };
+00074 
+00080     struct ChunkDesc
+00081     {
+00082         SubchunkDesc*   subchunks;          
+00083         uint32_t        subchunkCount;      
+00084         bool            isStatic;           
+00085     };
+00086 
+00087     ChunkDesc*  pxChunks;       
+00088 };
+00089 
+00090 
+00096 struct ExtPxSubchunk
+00097 {
+00098     physx::PxTransform          transform;          
+00099     physx::PxConvexMeshGeometry geometry;           
+00100 };
+00101 
+00102 
+00108 struct ExtPxChunk
+00109 {
+00110     uint32_t    firstSubchunkIndex; 
+00111     uint32_t    subchunkCount;      
+00112     bool        isStatic;           
+00113 };
+00114 
+00115 
+00121 class NV_DLL_EXPORT ExtPxAsset
+00122 {
+00123 public:
+00124 
+00133     static ExtPxAsset*              create(const ExtPxAssetDesc& desc, TkFramework& framework);
+00134 
+00143     static ExtPxAsset*              create(const TkAssetDesc& desc, ExtPxChunk* pxChunks, ExtPxSubchunk* pxSubchunks, TkFramework& framework);
+00144 
+00145 
+00146     /*
+00147         Factory method for deserialization
+00148 
+00149         Doesn't specify chunks or subchunks as they'll be fed in during deserialization to avoid copying stuff around.
+00150     
+00151     */
+00152     static ExtPxAsset*              create(TkAsset* asset);
+00153 
+00154     /*
+00155     Create a new ExtPxAsset.
+00156 
+00157     \param[in]  asset           TkAsset from which ExtPxAsset will be created
+00158     \param[in]  chunks          Array of physics chunks descriptors
+00159     \param[in]  chunkCount      Size of chunks descriptors array
+00160 
+00161 
+00162     \return the new ExtPxAsset if successful, NULL otherwise.
+00163         
+00164     */
+00165     static ExtPxAsset*              create(TkAsset* asset, ExtPxAssetDesc::ChunkDesc* chunks, uint32_t chunkCount);
 00166 
-00172     virtual const ExtPxChunk*       getChunks() const = 0;
-00173     
-00180     virtual uint32_t                getSubchunkCount() const = 0;
-00181     
-00187     virtual const ExtPxSubchunk*    getSubchunks() const = 0;
-00188 
-00192     void*   userData;
-00193 };
-00194 
-00195 
-00196 
-00197 } // namespace Blast
-00198 } // namespace Nv
-00199 
-00200 
-00201 #endif // ifndef NVBLASTEXTPXASSET_H
+00170     virtual void                    release() = 0;
+00171 
+00177     virtual const TkAsset&          getTkAsset() const = 0;
+00178 
+00184     virtual uint32_t                getChunkCount() const = 0;
+00185 
+00191     virtual const ExtPxChunk*       getChunks() const = 0;
+00192     
+00199     virtual uint32_t                getSubchunkCount() const = 0;
+00200     
+00206     virtual const ExtPxSubchunk*    getSubchunks() const = 0;
+00207 
+00221     virtual NvBlastActorDesc&       getDefaultActorDesc() = 0;
+00222 
+00223     virtual const NvBlastActorDesc& getDefaultActorDesc() const = 0;
+00224 
+00228     virtual void                    setUniformHealth(bool enabled) = 0;
+00229 
+00233     void*   userData;
+00234 };
+00235 
+00236 
+00237 
+00238 } // namespace Blast
+00239 } // namespace Nv
+00240 
+00241 
+00242 #endif // ifndef NVBLASTEXTPXASSET_H
 
-

sdk/extensions/physx/include/NvBlastExtPxFamily.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTPXFAMILY_H
-00012 #define NVBLASTEXTPXFAMILY_H
-00013 
-00014 #include "PxFiltering.h"
-00015 
-00016 
-00017 // Forward declarations
-00018 namespace physx
-00019 {
-00020 class PxRigidDynamic;
-00021 class PxMaterial;
-00022 class PxScene;
-00023 class PxTransform;
-00024 }
-00025 
-00026 
-00027 namespace Nv
-00028 {
-00029 namespace Blast
-00030 {
-00031 
-00032 // Forward declarations
-00033 class ExtPxActor;
-00034 class ExtPxAsset;
-00035 class ExtPxListener;
-00036 class TkFamily;
-00037 
-00038 
-00046 struct ExtPxShapeDescTemplate
-00047 {
-00048     uint8_t             flags;                  
-00049     physx::PxFilterData simulationFilterData;   
-00050     physx::PxFilterData queryFilterData;        
-00051     float               contactOffset;          
-00052     float               restOffset;             
-00053 };
-00054 
+

sdk/extensions/physx/include/NvBlastExtPxFamily.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTPXFAMILY_H
+00030 #define NVBLASTEXTPXFAMILY_H
+00031 
+00032 #include "PxFiltering.h"
+00033 
+00034 
+00035 // Forward declarations
+00036 namespace physx
+00037 {
+00038 class PxRigidDynamic;
+00039 class PxMaterial;
+00040 class PxScene;
+00041 class PxTransform;
+00042 }
+00043 
+00044 
+00045 namespace Nv
+00046 {
+00047 namespace Blast
+00048 {
+00049 
+00050 // Forward declarations
+00051 class ExtPxActor;
+00052 class ExtPxAsset;
+00053 class ExtPxListener;
+00054 class TkFamily;
 00055 
-00061 struct ExtPxActorDescTemplate
-00062 {
-00063     uint8_t             flags;                      
-00064 };
-00065 
-00066 
-00072 struct ExtPxSpawnSettings
-00073 {
-00074     physx::PxScene*     scene;          
-00075     physx::PxMaterial*  material;       
-00076     float               density;        
-00077 };
-00078 
-00079 
-00085 class ExtPxFamily
-00086 {
-00087 public:
-00097     virtual bool                            spawn(const physx::PxTransform& pose, const physx::PxVec3& scale, const ExtPxSpawnSettings& settings) = 0;
-00098 
-00099     
-00108     virtual bool                            despawn() = 0;
-00109 
-00110 
-00116     virtual uint32_t                        getActorCount() const = 0;
-00117 
-00126     virtual uint32_t                        getActors(ExtPxActor** buffer, uint32_t bufferSize) const = 0;
+00056 
+00064 struct ExtPxShapeDescTemplate
+00065 {
+00066     uint8_t             flags;                  
+00067     physx::PxFilterData simulationFilterData;   
+00068     physx::PxFilterData queryFilterData;        
+00069     float               contactOffset;          
+00070     float               restOffset;             
+00071 };
+00072 
+00073 
+00079 struct ExtPxActorDescTemplate
+00080 {
+00081     uint8_t             flags;                      
+00082 };
+00083 
+00084 
+00090 struct ExtPxSpawnSettings
+00091 {
+00092     physx::PxScene*     scene;          
+00093     physx::PxMaterial*  material;       
+00094     float               density;        
+00095 };
+00096 
+00097 
+00103 class ExtPxFamily
+00104 {
+00105 public:
+00115     virtual bool                            spawn(const physx::PxTransform& pose, const physx::PxVec3& scale, const ExtPxSpawnSettings& settings) = 0;
+00116 
+00117     
+00126     virtual bool                            despawn() = 0;
 00127 
-00133     virtual TkFamily&                       getTkFamily() const = 0;
-00134 
-00141     virtual const physx::PxShape* const*    getSubchunkShapes() const = 0;
-00142 
-00148     virtual const ExtPxAsset&               getPxAsset() const = 0;
-00149 
-00155     virtual void                            setMaterial(physx::PxMaterial& material) = 0;
-00156 
-00157     /*
-00158     Set ExtPxPxShapeDesc to be used on all newly created PxShapes.
-00159 
-00160     NOTE: Using it will override marking LEAF_CHUNK in simulationFilterData.word3 now.
-00161 
-00162     \param[in] pxShapeDesc      The PxShape desc to be the new default. Can be nullptr.
-00163     */
-00164     virtual void                            setPxShapeDescTemplate(const ExtPxShapeDescTemplate* pxShapeDesc) = 0;
-00165 
-00171     virtual const ExtPxShapeDescTemplate*   getPxShapeDescTemplate() const = 0;
-00172 
-00173     /*
-00174     Set ExtPxPxActorDesc to be used on all newly created PxActors.
-00175     
-00176     \param[in] pxActorDesc      The PxActor desc to be the new default. Can be nullptr.
-00177     */
-00178     virtual void                            setPxActorDesc(const ExtPxActorDescTemplate* pxActorDesc) = 0;
-00179 
-00185     virtual const ExtPxActorDescTemplate*   getPxActorDesc() const = 0;
-00186 
-00192     virtual void                            subscribe(ExtPxListener& listener) = 0;
-00193 
-00199     virtual void                            unsubscribe(ExtPxListener& listener) = 0;
-00200 
-00204     virtual void                            postSplitUpdate() = 0;
-00205 
-00209     virtual void                            release() = 0;
-00210 
-00214     void* userData;
-00215 };
-00216 
-00217 
+00128 
+00134     virtual uint32_t                        getActorCount() const = 0;
+00135 
+00144     virtual uint32_t                        getActors(ExtPxActor** buffer, uint32_t bufferSize) const = 0;
+00145 
+00151     virtual TkFamily&                       getTkFamily() const = 0;
+00152 
+00159     virtual const physx::PxShape* const*    getSubchunkShapes() const = 0;
+00160 
+00166     virtual const ExtPxAsset&               getPxAsset() const = 0;
+00167 
+00173     virtual void                            setMaterial(physx::PxMaterial& material) = 0;
+00174 
+00175     /*
+00176     Set ExtPxPxShapeDesc to be used on all newly created PxShapes.
+00177 
+00178     NOTE: Using it will override marking LEAF_CHUNK in simulationFilterData.word3 now.
+00179 
+00180     \param[in] pxShapeDesc      The PxShape desc to be the new default. Can be nullptr.
+00181     */
+00182     virtual void                            setPxShapeDescTemplate(const ExtPxShapeDescTemplate* pxShapeDesc) = 0;
+00183 
+00189     virtual const ExtPxShapeDescTemplate*   getPxShapeDescTemplate() const = 0;
+00190 
+00191     /*
+00192     Set ExtPxPxActorDesc to be used on all newly created PxActors.
+00193     
+00194     \param[in] pxActorDesc      The PxActor desc to be the new default. Can be nullptr.
+00195     */
+00196     virtual void                            setPxActorDesc(const ExtPxActorDescTemplate* pxActorDesc) = 0;
+00197 
+00203     virtual const ExtPxActorDescTemplate*   getPxActorDesc() const = 0;
+00204 
+00210     virtual void                            subscribe(ExtPxListener& listener) = 0;
+00211 
+00217     virtual void                            unsubscribe(ExtPxListener& listener) = 0;
 00218 
-00219 } // namespace Blast
-00220 } // namespace Nv
-00221 
-00222 
-00223 #endif // ifndef NVBLASTEXTPXFAMILY_H
+00222     virtual void                            postSplitUpdate() = 0;
+00223 
+00227     virtual void                            release() = 0;
+00228 
+00232     void* userData;
+00233 };
+00234 
+00235 
+00236 
+00237 } // namespace Blast
+00238 } // namespace Nv
+00239 
+00240 
+00241 #endif // ifndef NVBLASTEXTPXFAMILY_H
 
-

sdk/extensions/physx/include/NvBlastExtPxListener.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTPXLISTENER_H
-00012 #define NVBLASTEXTPXLISTENER_H
-00013 
-00014 
-00015 namespace Nv
-00016 {
-00017 namespace Blast
-00018 {
-00019 
-00020 // Forward declarations
-00021 class ExtPxFamily;
-00022 class ExtPxActor;
-00023 
-00024 
-00030 class ExtPxListener
-00031 {
-00032 public:
-00039     virtual void    onActorCreated(ExtPxFamily& family, ExtPxActor& actor) = 0;
-00040 
-00047     virtual void    onActorDestroyed(ExtPxFamily& family, ExtPxActor& actor) = 0;
-00048 };
-00049 
-00050 
-00051 } // namespace Blast
-00052 } // namespace Nv
-00053 
-00054 
-00055 #endif // ifndef NVBLASTEXTPXLISTENER_H
+

sdk/extensions/physx/include/NvBlastExtPxListener.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTPXLISTENER_H
+00030 #define NVBLASTEXTPXLISTENER_H
+00031 
+00032 
+00033 namespace Nv
+00034 {
+00035 namespace Blast
+00036 {
+00037 
+00038 // Forward declarations
+00039 class ExtPxFamily;
+00040 class ExtPxActor;
+00041 
+00042 
+00048 class ExtPxListener
+00049 {
+00050 public:
+00057     virtual void    onActorCreated(ExtPxFamily& family, ExtPxActor& actor) = 0;
+00058 
+00065     virtual void    onActorDestroyed(ExtPxFamily& family, ExtPxActor& actor) = 0;
+00066 };
+00067 
+00068 
+00069 } // namespace Blast
+00070 } // namespace Nv
+00071 
+00072 
+00073 #endif // ifndef NVBLASTEXTPXLISTENER_H
 
-

sdk/extensions/physx/include/NvBlastExtPxManager.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTPXMANAGER_H
-00012 #define NVBLASTEXTPXMANAGER_H
-00013 
-00014 #include "NvBlastTypes.h"
-00015 #include "PxConvexMeshGeometry.h"
-00016 #include "PxTransform.h"
-00017 #include "NvPreprocessor.h"
-00018 
-00019 
-00020 // Forward declarations
-00021 namespace physx
-00022 {
-00023 class PxPhysics;
-00024 class PxRigidDynamic;
-00025 class PxJoint;
-00026 
-00027 namespace general_PxIOStream2
-00028 {
-00029 class PxFileBuf;
-00030 }
-00031 }
-00032 
-00033 
-00034 namespace Nv
-00035 {
-00036 namespace Blast
-00037 {
-00038 
-00039 // Forward declarations
-00040 class ExtPxActor;
-00041 class ExtPxAsset;
-00042 class ExtPxFamily;
-00043 class ExtPxListener;
-00044 class TkFamily;
-00045 class TkFramework;
-00046 class TkGroup;
-00047 class TkJoint;
-00048 
-00049 
-00055 struct ExtPxFamilyDesc
-00056 {
-00057     const ExtPxAsset*   pxAsset;        
-00058     NvBlastActorDesc    actorDesc;      
-00059     TkGroup*            group;          
-00060 };
-00061 
-00062 
-00068 typedef physx::PxJoint*(*ExtPxCreateJointFunction)(ExtPxActor* actor0, const physx::PxTransform& localFrame0, ExtPxActor* actor1, const physx::PxTransform& localFrame1, physx::PxPhysics& physics, TkJoint& joint);
-00069 
-00070 
-00076 class NV_DLL_EXPORT ExtPxManager
-00077 {
-00078 public:
+

sdk/extensions/physx/include/NvBlastExtPxManager.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTPXMANAGER_H
+00030 #define NVBLASTEXTPXMANAGER_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 #include "PxConvexMeshGeometry.h"
+00034 #include "PxTransform.h"
+00035 #include "NvPreprocessor.h"
+00036 
+00037 
+00038 // Forward declarations
+00039 namespace physx
+00040 {
+00041 class PxPhysics;
+00042 class PxRigidDynamic;
+00043 class PxJoint;
+00044 
+00045 namespace general_PxIOStream2
+00046 {
+00047 class PxFileBuf;
+00048 }
+00049 }
+00050 
+00051 
+00052 namespace Nv
+00053 {
+00054 namespace Blast
+00055 {
+00056 
+00057 // Forward declarations
+00058 class ExtPxActor;
+00059 class ExtPxAsset;
+00060 class ExtPxFamily;
+00061 class ExtPxListener;
+00062 class TkFamily;
+00063 class TkFramework;
+00064 class TkGroup;
+00065 class TkJoint;
+00066 
+00067 
+00073 struct ExtPxFamilyDesc
+00074 {
+00075     const ExtPxAsset*       pxAsset;        
+00076     const NvBlastActorDesc* actorDesc;      
+00077     TkGroup*                group;          
+00078 };
+00079 
 00080 
-00092     static ExtPxManager*        create(physx::PxPhysics& physics, TkFramework& framework, ExtPxCreateJointFunction createFn = nullptr, bool useUserData = true);
-00093 
-00097     virtual void                release() = 0;
+00086 typedef physx::PxJoint*(*ExtPxCreateJointFunction)(ExtPxActor* actor0, const physx::PxTransform& localFrame0, ExtPxActor* actor1, const physx::PxTransform& localFrame1, physx::PxPhysics& physics, TkJoint& joint);
+00087 
+00088 
+00094 class NV_DLL_EXPORT ExtPxManager
+00095 {
+00096 public:
 00098 
-00099 
-00101 
-00105     enum FilterDataAttributes
-00106     {
-00107         LEAF_CHUNK = 1,
-00108     };
-00109 
-00110 
-00112 
-00120     virtual ExtPxFamily*        createFamily(const ExtPxFamilyDesc& desc) = 0;
-00121 
-00132     virtual bool                createJoint(TkJoint& joint) = 0;
-00133 
-00139     virtual void                destroyJoint(TkJoint& joint) = 0;
-00140 
-00146     virtual void                setCreateJointFunction(ExtPxCreateJointFunction createFn) = 0;
-00147 
-00153     virtual uint32_t            getFamilyCount() const = 0;
-00154 
-00163     virtual uint32_t            getFamilies(ExtPxFamily** buffer, uint32_t bufferSize) const = 0;
-00164 
-00172     virtual ExtPxFamily*        getFamilyFromTkFamily(TkFamily& family) const = 0;
-00173 
-00181     virtual ExtPxActor*         getActorFromPhysXActor(const physx::PxRigidDynamic& pxActor) const = 0;
+00110     static ExtPxManager*        create(physx::PxPhysics& physics, TkFramework& framework, ExtPxCreateJointFunction createFn = nullptr, bool useUserData = true);
+00111 
+00115     virtual void                release() = 0;
+00116 
+00117 
+00119 
+00123     enum FilterDataAttributes
+00124     {
+00125         LEAF_CHUNK = 1,
+00126     };
+00127 
+00128 
+00130 
+00138     virtual ExtPxFamily*        createFamily(const ExtPxFamilyDesc& desc) = 0;
+00139 
+00150     virtual bool                createJoint(TkJoint& joint) = 0;
+00151 
+00157     virtual void                destroyJoint(TkJoint& joint) = 0;
+00158 
+00164     virtual void                setCreateJointFunction(ExtPxCreateJointFunction createFn) = 0;
+00165 
+00171     virtual uint32_t            getFamilyCount() const = 0;
+00172 
+00181     virtual uint32_t            getFamilies(ExtPxFamily** buffer, uint32_t bufferSize) const = 0;
 00182 
-00188     virtual physx::PxPhysics&   getPhysics() const = 0;
-00189 
-00195     virtual TkFramework&        getFramework() const = 0;
-00196 
-00202     virtual bool                isPxUserDataUsed() const = 0;
-00203 
-00209     virtual void                setActorCountLimit(uint32_t limit) = 0;
-00210 
-00216     virtual uint32_t            getActorCountLimit() = 0;
-00217 
-00223     virtual uint32_t            getPxActorCount() const = 0;
-00224 
-00230     virtual void                subscribe(ExtPxListener& listener) = 0;
-00231 
-00237     virtual void                unsubscribe(ExtPxListener& listener) = 0;
-00238 };
-00239 
-00240 
-00241 } // namespace Blast
-00242 } // namespace Nv
-00243 
-00244 
-00245 #endif // ifndef NVBLASTEXTPXMANAGER_H
+00190     virtual ExtPxFamily*        getFamilyFromTkFamily(TkFamily& family) const = 0;
+00191 
+00199     virtual ExtPxActor*         getActorFromPhysXActor(const physx::PxRigidDynamic& pxActor) const = 0;
+00200 
+00206     virtual physx::PxPhysics&   getPhysics() const = 0;
+00207 
+00213     virtual TkFramework&        getFramework() const = 0;
+00214 
+00220     virtual bool                isPxUserDataUsed() const = 0;
+00221 
+00227     virtual void                setActorCountLimit(uint32_t limit) = 0;
+00228 
+00234     virtual uint32_t            getActorCountLimit() = 0;
+00235 
+00241     virtual uint32_t            getPxActorCount() const = 0;
+00242 
+00248     virtual void                subscribe(ExtPxListener& listener) = 0;
+00249 
+00255     virtual void                unsubscribe(ExtPxListener& listener) = 0;
+00256 };
+00257 
+00258 
+00259 } // namespace Blast
+00260 } // namespace Nv
+00261 
+00262 
+00263 #endif // ifndef NVBLASTEXTPXMANAGER_H
 
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_px_serialization_8h.html b/docs/api_docs/files/_nv_blast_ext_px_serialization_8h.html new file mode 100644 index 0000000..d7606e1 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_px_serialization_8h.html @@ -0,0 +1,146 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/serialization/include/NvBlastExtPxSerialization.h File Reference + + + + + + + +
+

sdk/extensions/serialization/include/NvBlastExtPxSerialization.h File Reference

#include "NvBlastGlobals.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + +

Classes

struct  Nv::Blast::ExtPxObjectTypeID

Namespaces

namespace  Nv
namespace  Nv::Blast
namespace  physx

Functions

size_t NvBlastExtPxSerializerLoadSet (Nv::Blast::TkFramework &framework, physx::PxPhysics &physics, physx::PxCooking &cooking, Nv::Blast::ExtSerialization &serialization)
uint64_t NvBlastExtSerializationSerializeExtPxAssetIntoBuffer (void *&buffer, Nv::Blast::ExtSerialization &serialization, const Nv::Blast::ExtPxAsset *asset)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t NvBlastExtPxSerializerLoadSet (Nv::Blast::TkFramework framework,
physx::PxPhysics &  physics,
physx::PxCooking &  cooking,
Nv::Blast::ExtSerialization serialization 
)
+
+
+ +

+Load all ExtPhysX extension serializers into the ExtSerialization manager.

+It does no harm to call this function more than once; serializers already loaded will not be loaded again.

+

Parameters:
+ + +
[in] serialization Serialization manager into which to load serializers.
+
+
Returns:
the number of serializers loaded.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t NvBlastExtSerializationSerializeExtPxAssetIntoBuffer (void *&  buffer,
Nv::Blast::ExtSerialization serialization,
const Nv::Blast::ExtPxAsset asset 
)
+
+
+ +

+Utility wrapper function to serialize an ExtPxAsset. Allocates the buffer internally using the callack set in ExtSerialization::setBufferProvider.

+Equivalent to:

+serialization.serializeIntoBuffer(buffer, asset, Nv::Blast::ExtPxObjectTypeID::Asset);

+

Parameters:
+ + + + +
[out] buffer Pointer to the buffer created.
[in] serialization Serialization manager.
[in] asset Pointer to the ExtPxAsset to serialize.
+
+
Returns:
the number of bytes serialized into the buffer (zero if unsuccessful).
+ +
+

+

+ + + + 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 new file mode 100644 index 0000000..fadf4dd --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h-source.html @@ -0,0 +1,93 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtPxStressSolver.h Source File + + + + + + + +

sdk/extensions/physx/include/NvBlastExtPxStressSolver.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTPXSTRESSSOLVER_H
+00030 #define NVBLASTEXTPXSTRESSSOLVER_H
+00031 
+00032 #include "NvBlastExtStressSolver.h"
+00033 #include "common/PxRenderBuffer.h"
+00034 
+00035 
+00036 namespace Nv
+00037 {
+00038 namespace Blast
+00039 {
+00040 
+00041 // forward declarations
+00042 class ExtPxFamily;
+00043 
+00044 
+00053 class NV_DLL_EXPORT ExtPxStressSolver
+00054 {
+00055 public:
+00057 
+00066     static ExtPxStressSolver*               create(ExtPxFamily& family, ExtStressSolverSettings settings = ExtStressSolverSettings());
+00067 
+00068 
+00070 
+00074     virtual void                            release() = 0;
+00075 
+00081     virtual ExtStressSolver&                getSolver() const = 0;
+00082 
+00090     virtual void                            update(bool doDamage = true) = 0;
+00091 };
+00092 
+00093 
+00094 } // namespace Blast
+00095 } // namespace Nv
+00096 
+00097 
+00098 #endif // ifndef NVBLASTEXTPXSTRESSSOLVER_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h.html b/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h.html new file mode 100644 index 0000000..e5edc74 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h.html @@ -0,0 +1,44 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtPxStressSolver.h File Reference + + + + + + + +
+

sdk/extensions/physx/include/NvBlastExtPxStressSolver.h File Reference

#include "NvBlastExtStressSolver.h"
+#include "common/PxRenderBuffer.h"
+ +

+Go to the source code of this file. + + + + + + + + + +

Classes

class  Nv::Blast::ExtPxStressSolver

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + 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 new file mode 100644 index 0000000..af50d2b --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_px_task_8h-source.html @@ -0,0 +1,102 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtPxTask.h Source File + + + + + + + +

sdk/extensions/physx/include/NvBlastExtPxTask.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTEXTPXTASK_H
+00030 #define NVBLASTEXTPXTASK_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 
+00035 // Forward declarations
+00036 namespace physx
+00037 {
+00038 class PxTaskManager;
+00039 }
+00040 
+00041 
+00042 namespace Nv
+00043 {
+00044 namespace Blast
+00045 {
+00046 
+00047 
+00048 // Forward declarations
+00049 class TkGroup;
+00050 
+00051 
+00055 class NV_DLL_EXPORT ExtGroupTaskManager
+00056 {
+00057 protected:
+00058     virtual ~ExtGroupTaskManager() {}
+00059 
+00060 public:
+00061     static ExtGroupTaskManager* create(physx::PxTaskManager&);
+00062     static ExtGroupTaskManager* create(physx::PxTaskManager&, TkGroup&);
+00063 
+00067     virtual void setGroup(TkGroup*) = 0;
+00068 
+00080     virtual uint32_t process(uint32_t workerCount = 0) = 0;
+00081 
+00085     virtual bool wait(bool block = true) = 0;
+00086 
+00090     virtual void release() = 0;
+00091 };
+00092 
+00093 
+00094 } // namespace Blast
+00095 } // namespace Nv
+00096 
+00097 #endif // NVBLASTEXTPXTASK_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_px_task_8h.html b/docs/api_docs/files/_nv_blast_ext_px_task_8h.html new file mode 100644 index 0000000..abaca25 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_px_task_8h.html @@ -0,0 +1,45 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtPxTask.h File Reference + + + + + + + +
+

sdk/extensions/physx/include/NvBlastExtPxTask.h File Reference

#include "NvBlastTypes.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + +

Classes

class  Nv::Blast::ExtGroupTaskManager

Namespaces

namespace  Nv
namespace  Nv::Blast
namespace  physx
+

+ + + + 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 new file mode 100644 index 0000000..833c25c --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_serialization_8h-source.html @@ -0,0 +1,110 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/serialization/include/NvBlastExtSerialization.h Source File + + + + + + + +

sdk/extensions/serialization/include/NvBlastExtSerialization.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #pragma once
+00030 
+00031 #include "NvBlastGlobals.h"
+00032 
+00033 
+00034 namespace Nv
+00035 {
+00036 namespace Blast
+00037 {
+00038 
+00042 class ExtSerialization
+00043 {
+00044 public:
+00046     struct EncodingID
+00047     {
+00048         enum Enum
+00049         {
+00050             CapnProtoBinary =   NVBLAST_FOURCC('C', 'P', 'N', 'B'),
+00051             RawBinary =         NVBLAST_FOURCC('R', 'A', 'W', ' '),
+00052         };
+00053     };
+00054 
+00056     class BufferProvider
+00057     {
+00058     public:
+00059         virtual void*   requestBuffer(size_t size) = 0;
+00060     };
+00061 
+00067     virtual bool        setSerializationEncoding(uint32_t encodingID) = 0;
+00068 
+00075     virtual uint32_t    getSerializationEncoding() const = 0;
+00076 
+00084     virtual void        setBufferProvider(BufferProvider* bufferProvider) = 0;
+00085 
+00096     virtual bool        peekHeader(uint32_t* objectTypeID, uint32_t* encodingID, uint64_t* dataSize, const void* buffer, uint64_t bufferSize) = 0;
+00097 
+00106     virtual const void* skipObject(uint64_t& bufferSize, const void* buffer) = 0;
+00107 
+00118     virtual void*       deserializeFromBuffer(const void* buffer, uint64_t bufferSize, uint32_t* objectTypeIDPtr = nullptr) = 0;
+00119 
+00129     virtual uint64_t    serializeIntoBuffer(void*& buffer, const void* object, uint32_t objectTypeID) = 0;
+00130 
+00134     virtual void        release() = 0;
+00135 
+00136 protected:
+00140     virtual             ~ExtSerialization() {}
+00141 };
+00142 
+00143 }   // namespace Blast
+00144 }   // namespace Nv
+00145 
+00146 
+00148 
+00156 NVBLAST_API Nv::Blast::ExtSerialization*    NvBlastExtSerializationCreate();
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_serialization_8h.html b/docs/api_docs/files/_nv_blast_ext_serialization_8h.html new file mode 100644 index 0000000..148bd82 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_serialization_8h.html @@ -0,0 +1,73 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/serialization/include/NvBlastExtSerialization.h File Reference + + + + + + + +
+

sdk/extensions/serialization/include/NvBlastExtSerialization.h File Reference

#include "NvBlastGlobals.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + +

Classes

class  Nv::Blast::ExtSerialization
class  Nv::Blast::ExtSerialization::ExtSerialization::BufferProvider
struct  Nv::Blast::ExtSerialization::ExtSerialization::EncodingID

Namespaces

namespace  Nv
namespace  Nv::Blast

Functions

Nv::Blast::ExtSerializationNvBlastExtSerializationCreate ()
+


Function Documentation

+ +
+
+ + + + + + + + +
Nv::Blast::ExtSerialization* NvBlastExtSerializationCreate (  ) 
+
+
+ +

+Create a new serialization manager. To release it, use its release() method.

+This uses the global allocator set in NvBlastGlobals.h.

+

Returns:
a new serialization manager.
+ +
+

+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_serialization_interface_8h-source.html b/docs/api_docs/files/_nv_blast_ext_serialization_interface_8h-source.html deleted file mode 100644 index ab03b9e..0000000 --- a/docs/api_docs/files/_nv_blast_ext_serialization_interface_8h-source.html +++ /dev/null @@ -1,66 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/serialization/include/NvBlastExtSerializationInterface.h Source File - - - - - - - -

sdk/extensions/serialization/include/NvBlastExtSerializationInterface.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 /*
-00012     Include this file to get the C interface to serialization for all asset types (LL, Tk and Ext)
-00013 */
-00014 #pragma once
-00015 #include <ostream>
-00016 #include "NvBlastTkAsset.h"
-00017 #include "NvBlastExtPxAsset.h"
-00018 
-00019 #include "NvBlastExtSerializationLLInterface.h"
-00020 
-00021 namespace physx
-00022 {
-00023     class PxPhysics;
-00024 }
-00025 
-00026 NVBLAST_API void setPhysXSDK(physx::PxPhysics* physXSDK);
-00027 
-00028 NVBLAST_API Nv::Blast::TkAsset* deserializeTkAsset(const unsigned char* input, uint32_t size);
-00029 NVBLAST_API Nv::Blast::TkAsset* deserializeTkAssetFromStream(std::istream &inputStream);
-00030 NVBLAST_API bool serializeTkAssetIntoStream(const Nv::Blast::TkAsset *asset, std::ostream &outputStream);
-00031 NVBLAST_API bool serializeTkAssetIntoNewBuffer(const Nv::Blast::TkAsset *asset, unsigned char **outBuffer, uint32_t &outSize);
-00032 NVBLAST_API bool serializeTkAssetIntoExistingBuffer(const Nv::Blast::TkAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize);
-00033 
-00034 NVBLAST_API Nv::Blast::ExtPxAsset* deserializeExtPxAsset(const unsigned char* input, uint32_t size);
-00035 NVBLAST_API Nv::Blast::ExtPxAsset* deserializeExtPxAssetFromStream(std::istream &inputStream);
-00036 NVBLAST_API bool serializeExtPxAssetIntoStream(const Nv::Blast::ExtPxAsset *asset, std::ostream &outputStream);
-00037 NVBLAST_API bool serializeExtPxAssetIntoNewBuffer(const Nv::Blast::ExtPxAsset *asset, unsigned char **outBuffer, uint32_t &outSize);
-00038 NVBLAST_API bool serializeExtPxAssetIntoExistingBuffer(const Nv::Blast::ExtPxAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize);
-
- - - - diff --git a/docs/api_docs/files/_nv_blast_ext_serialization_interface_8h.html b/docs/api_docs/files/_nv_blast_ext_serialization_interface_8h.html deleted file mode 100644 index bf7ae40..0000000 --- a/docs/api_docs/files/_nv_blast_ext_serialization_interface_8h.html +++ /dev/null @@ -1,393 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/serialization/include/NvBlastExtSerializationInterface.h File Reference - - - - - - - -
-

sdk/extensions/serialization/include/NvBlastExtSerializationInterface.h File Reference

#include <ostream>
-#include "NvBlastTkAsset.h"
-#include "NvBlastExtPxAsset.h"
-#include "NvBlastExtSerializationLLInterface.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Namespaces

namespace  physx

Functions

Nv::Blast::ExtPxAssetdeserializeExtPxAsset (const unsigned char *input, uint32_t size)
Nv::Blast::ExtPxAssetdeserializeExtPxAssetFromStream (std::istream &inputStream)
Nv::Blast::TkAssetdeserializeTkAsset (const unsigned char *input, uint32_t size)
Nv::Blast::TkAssetdeserializeTkAssetFromStream (std::istream &inputStream)
bool serializeExtPxAssetIntoExistingBuffer (const Nv::Blast::ExtPxAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize)
bool serializeExtPxAssetIntoNewBuffer (const Nv::Blast::ExtPxAsset *asset, unsigned char **outBuffer, uint32_t &outSize)
bool serializeExtPxAssetIntoStream (const Nv::Blast::ExtPxAsset *asset, std::ostream &outputStream)
bool serializeTkAssetIntoExistingBuffer (const Nv::Blast::TkAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize)
bool serializeTkAssetIntoNewBuffer (const Nv::Blast::TkAsset *asset, unsigned char **outBuffer, uint32_t &outSize)
bool serializeTkAssetIntoStream (const Nv::Blast::TkAsset *asset, std::ostream &outputStream)
void setPhysXSDK (physx::PxPhysics *physXSDK)
-


Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
Nv::Blast::ExtPxAsset* deserializeExtPxAsset (const unsigned char *  input,
uint32_t  size 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - -
Nv::Blast::ExtPxAsset* deserializeExtPxAssetFromStream (std::istream &  inputStream  ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - -
Nv::Blast::TkAsset* deserializeTkAsset (const unsigned char *  input,
uint32_t  size 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - -
Nv::Blast::TkAsset* deserializeTkAssetFromStream (std::istream &  inputStream  ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool serializeExtPxAssetIntoExistingBuffer (const Nv::Blast::ExtPxAsset asset,
unsigned char *  buffer,
uint32_t  maxSize,
uint32_t &  usedSize 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool serializeExtPxAssetIntoNewBuffer (const Nv::Blast::ExtPxAsset asset,
unsigned char **  outBuffer,
uint32_t &  outSize 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - -
bool serializeExtPxAssetIntoStream (const Nv::Blast::ExtPxAsset asset,
std::ostream &  outputStream 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool serializeTkAssetIntoExistingBuffer (const Nv::Blast::TkAsset asset,
unsigned char *  buffer,
uint32_t  maxSize,
uint32_t &  usedSize 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool serializeTkAssetIntoNewBuffer (const Nv::Blast::TkAsset asset,
unsigned char **  outBuffer,
uint32_t &  outSize 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - -
bool serializeTkAssetIntoStream (const Nv::Blast::TkAsset asset,
std::ostream &  outputStream 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - -
void setPhysXSDK (physx::PxPhysics *  physXSDK  ) 
-
-
- -

- -

-

-

- - - - diff --git a/docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h-source.html b/docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h-source.html deleted file mode 100644 index 740411b..0000000 --- a/docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h-source.html +++ /dev/null @@ -1,71 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/serialization/include/NvBlastExtSerializationLLInterface.h Source File - - - - - - - -

sdk/extensions/serialization/include/NvBlastExtSerializationLLInterface.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 /*
-00012 Include this file to access the C API for serialization, for Low Level assets only.
-00013 
-00014 For Serialization of Tk and Ext assets, include only NvBlastExtSerializationInterface.h, which will include this file as well.
-00015 
-00016 */
-00017 #pragma once
-00018 #include <ostream>
-00019 #include "NvBlastPreprocessor.h"
-00020 #include "NvBlastTypes.h"
-00021 
-00022 #include "NvBlastExtGlobals.h"
-00023 
-00024 /*
-00025     Set a global NvBlastAlloc signature allocation function that the deserialization will use when required.
-00026 
-00027     NOTE: This will NOT be used when using the combined serialization library, as it will use the TkFramework's allocation and logging
-00028 */
-00029 NVBLAST_API void setAllocator(NvBlastExtAlloc alloc);
-00030 
-00031 /*
-00032     Set a global NvBlastLog signature allocation function that the library will use when required.
-00033 
-00034     NOTE: This will NOT be used when using the combined serialization library, as it will use the TkFramework's allocation and logging
-00035 */
-00036 NVBLAST_API void setLog(NvBlastLog log);
-00037 
-00038 
-00039 NVBLAST_API NvBlastAsset* deserializeAsset(const unsigned char* input, uint32_t size);
-00040 NVBLAST_API NvBlastAsset* deserializeAssetFromStream(std::istream &inputStream);
-00041 NVBLAST_API bool serializeAssetIntoStream(const NvBlastAsset *asset, std::ostream &outputStream);
-00042 NVBLAST_API bool serializeAssetIntoNewBuffer(const NvBlastAsset *asset, unsigned char **outBuffer, uint32_t &outSize);
-00043 NVBLAST_API bool serializeAssetIntoExistingBuffer(const NvBlastAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize);
-
- - - - diff --git a/docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h.html b/docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h.html deleted file mode 100644 index 2a09966..0000000 --- a/docs/api_docs/files/_nv_blast_ext_serialization_l_l_interface_8h.html +++ /dev/null @@ -1,248 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/serialization/include/NvBlastExtSerializationLLInterface.h File Reference - - - - - - - -
-

sdk/extensions/serialization/include/NvBlastExtSerializationLLInterface.h File Reference

#include <ostream>
-#include "NvBlastPreprocessor.h"
-#include "NvBlastTypes.h"
-#include "NvBlastExtGlobals.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - -

Functions

NvBlastAssetdeserializeAsset (const unsigned char *input, uint32_t size)
NvBlastAssetdeserializeAssetFromStream (std::istream &inputStream)
bool serializeAssetIntoExistingBuffer (const NvBlastAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize)
bool serializeAssetIntoNewBuffer (const NvBlastAsset *asset, unsigned char **outBuffer, uint32_t &outSize)
bool serializeAssetIntoStream (const NvBlastAsset *asset, std::ostream &outputStream)
void setAllocator (NvBlastExtAlloc alloc)
void setLog (NvBlastLog log)
-


Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
NvBlastAsset* deserializeAsset (const unsigned char *  input,
uint32_t  size 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - -
NvBlastAsset* deserializeAssetFromStream (std::istream &  inputStream  ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool serializeAssetIntoExistingBuffer (const NvBlastAsset asset,
unsigned char *  buffer,
uint32_t  maxSize,
uint32_t &  usedSize 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool serializeAssetIntoNewBuffer (const NvBlastAsset asset,
unsigned char **  outBuffer,
uint32_t &  outSize 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - -
bool serializeAssetIntoStream (const NvBlastAsset asset,
std::ostream &  outputStream 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - -
void setAllocator (NvBlastExtAlloc  alloc  ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - -
void setLog (NvBlastLog  log  ) 
-
-
- -

- -

-

-

- - - - 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 1b81482..1e92b60 100644 --- 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 @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/physx/include/NvBlastExtStressSolver.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/stress/include/NvBlastExtStressSolver.h Source File @@ -19,102 +19,173 @@
-

sdk/extensions/physx/include/NvBlastExtStressSolver.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTSTRESSSOLVER_H
-00012 #define NVBLASTEXTSTRESSSOLVER_H
-00013 
-00014 #include "common/PxRenderBuffer.h"
-00015 #include <vector>
-00016 #include "NvPreprocessor.h"
-00017 
-00018 
-00019 namespace Nv
-00020 {
-00021 namespace Blast
-00022 {
-00023 
-00024 // forward declarations
-00025 class ExtPxFamily;
-00026 class ExtPxActor;
+

sdk/extensions/stress/include/NvBlastExtStressSolver.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
 00027 
-00042 struct ExtStressSolverSettings
-00043 {
-00044     float       stressLinearFactor;         
-00045     float       stressAngularFactor;        
-00046     uint32_t    bondIterationsPerFrame;     
-00047     uint32_t    graphReductionLevel;        
-00048 
-00049     ExtStressSolverSettings() :
-00050         stressLinearFactor(0.00004f),
-00051         stressAngularFactor(0.00007f),
-00052         bondIterationsPerFrame(18000),
-00053         graphReductionLevel(3)
-00054     {}
-00055 };
-00056 
-00057 
-00068 class NV_DLL_EXPORT ExtStressSolver
-00069 {
-00070 public:
-00072 
-00081     static ExtStressSolver*                 create(ExtPxFamily& family, ExtStressSolverSettings settings = ExtStressSolverSettings());
-00082 
-00083 
-00085 
-00089     virtual void                            release() = 0;
-00090 
-00098     virtual void                            setSettings(const ExtStressSolverSettings& settings) = 0;
-00099 
-00105     virtual const ExtStressSolverSettings&  getSettings() const = 0;
-00106 
-00114     virtual void                            applyImpulse(ExtPxActor& actor, physx::PxVec3 position, physx::PxVec3 force) = 0;
-00115 
-00123     virtual void                            update(bool doDamage = true) = 0;
-00124 
-00131     virtual void                            reset() = 0;
-00132 
-00136     enum DebugRenderMode
-00137     {
-00138         STRESS_GRAPH = 0,                   
-00139         STRESS_GRAPH_NODES_IMPULSES = 1,    
-00140         STRESS_GRAPH_BONDS_IMPULSES = 2     
-00141     };
-00142 
-00151     virtual void                            fillDebugRender(const std::vector<uint32_t>& nodes, std::vector<physx::PxDebugLine>& lines, DebugRenderMode mode, float scale = 1.0f) = 0;
-00152 
-00158     virtual float                           getStressErrorLinear() const = 0;
-00159 
-00165     virtual float                           getStressErrorAngular() const = 0;
-00166 
-00172     virtual uint32_t                        getIterationCount() const = 0;
-00173 
-00179     virtual uint32_t                        getFrameCount() const = 0;
-00180 
-00186     virtual uint32_t                        getBondCount() const = 0;
-00187 
-00188 
-00190 
-00198     uint32_t                                getIterationsPerFrame() const
-00199     {
-00200         uint32_t perFrame = getSettings().bondIterationsPerFrame / (getBondCount() + 1);
-00201         return perFrame > 0 ? perFrame : 1;
-00202     }
-00203 };
-00204 
-00205 } // namespace Blast
-00206 } // namespace Nv
-00207 
-00208 
-00209 #endif // ifndef NVBLASTEXTSTRESSSOLVER_H
+00028 
+00029 #ifndef NVBLASTEXTSTRESSSOLVER_H
+00030 #define NVBLASTEXTSTRESSSOLVER_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 #include "PxVec3.h"
+00034 #include <vector>
+00035 
+00036 
+00037 namespace Nv
+00038 {
+00039 namespace Blast
+00040 {
+00041 
+00042 
+00057 struct ExtStressSolverSettings
+00058 {
+00059     float       hardness;                   
+00060     float       stressLinearFactor;         
+00061     float       stressAngularFactor;        
+00062     uint32_t    bondIterationsPerFrame;     
+00063     uint32_t    graphReductionLevel;        
+00064 
+00065     ExtStressSolverSettings() :
+00066         hardness(1000.0f),
+00067         stressLinearFactor(0.25f),
+00068         stressAngularFactor(0.75f),
+00069         bondIterationsPerFrame(18000),
+00070         graphReductionLevel(3)
+00071     {}
+00072 };
+00073 
+00074 
+00080 struct ExtForceMode
+00081 {
+00082     enum Enum
+00083     {
+00084         IMPULSE,    
+00085         VELOCITY,   
+00086     };
+00087 };
+00088 
+00089 
+00105 class NV_DLL_EXPORT ExtStressSolver
+00106 {
+00107 public:
+00109 
+00118     static ExtStressSolver*                 create(NvBlastFamily& family, ExtStressSolverSettings settings = ExtStressSolverSettings());
+00119 
+00120 
+00122 
+00126     virtual void                            release() = 0;
+00127 
+00139     virtual void                            setNodeInfo(uint32_t graphNodeIndex, float mass, float volume, physx::PxVec3 localPosition, bool isStatic) = 0;
+00140 
+00148     virtual void                            setAllNodesInfoFromLL(float density = 1.0f) = 0;
+00149 
+00157     virtual void                            setSettings(const ExtStressSolverSettings& settings) = 0;
+00158 
+00164     virtual const ExtStressSolverSettings&  getSettings() const = 0;
+00165 
+00175     virtual bool                            notifyActorCreated(const NvBlastActor& actor) = 0;
+00176 
+00184     virtual void                            notifyActorDestroyed(const NvBlastActor& actor) = 0;
+00185 
+00196     virtual bool                            addForce(const NvBlastActor& actor, physx::PxVec3 localPosition, physx::PxVec3 localForce, ExtForceMode::Enum mode = ExtForceMode::IMPULSE) = 0;
+00197 
+00205     virtual void                            addForce(uint32_t graphNodeIndex, physx::PxVec3 localForce, ExtForceMode::Enum mode = ExtForceMode::IMPULSE) = 0;
+00206 
+00215     virtual bool                            addGravityForce(const NvBlastActor& actor, physx::PxVec3 localGravity) = 0;
+00216 
+00226     virtual bool                            addAngularVelocity(const NvBlastActor& actor, physx::PxVec3 localCenterMass, physx::PxVec3 localAngularVelocity) = 0;
+00227 
+00233     virtual void                            update() = 0;
+00234 
+00242     virtual uint32_t                        getOverstressedBondCount() const = 0;
+00243 
+00256     virtual void                            generateFractureCommands(const NvBlastActor& actor, NvBlastFractureBuffers& commands) = 0;
+00257 
+00268     virtual void                            generateFractureCommands(NvBlastFractureBuffers& commands) = 0;
+00269 
+00286     virtual uint32_t                        generateFractureCommandsPerActor(const NvBlastActor** actorBuffer, NvBlastFractureBuffers* commandsBuffer, uint32_t bufferSize) = 0;
+00287 
+00294     virtual void                            reset() = 0;
+00295 
+00301     virtual float                           getStressErrorLinear() const = 0;
+00302 
+00308     virtual float                           getStressErrorAngular() const = 0;
+00309 
+00315     virtual uint32_t                        getFrameCount() const = 0;
+00316 
+00322     virtual uint32_t                        getBondCount() const = 0;
+00323 
+00324 
+00328     enum DebugRenderMode
+00329     {
+00330         STRESS_GRAPH = 0,                   
+00331         STRESS_GRAPH_NODES_IMPULSES = 1,    
+00332         STRESS_GRAPH_BONDS_IMPULSES = 2     
+00333     };
+00334 
+00338     struct DebugLine
+00339     {
+00340         DebugLine(const physx::PxVec3& p0, const physx::PxVec3& p1, const uint32_t& c)
+00341             : pos0(p0), color0(c), pos1(p1), color1(c) {}
+00342 
+00343         physx::PxVec3   pos0;
+00344         uint32_t        color0;
+00345         physx::PxVec3   pos1;
+00346         uint32_t        color1;
+00347     };
+00348 
+00352     struct DebugBuffer
+00353     {
+00354         const DebugLine* lines;
+00355         uint32_t         lineCount;
+00356     };
+00357 
+00370     virtual const DebugBuffer               fillDebugRender(const uint32_t* nodes, uint32_t nodeCount, DebugRenderMode mode, float scale = 1.0f) = 0;
+00371 
+00372 
+00374 
+00386     static uint32_t                         getIterationsPerFrame(const ExtStressSolverSettings& settings, uint32_t bondCount)
+00387     {
+00388         uint32_t perFrame = settings.bondIterationsPerFrame / (bondCount + 1);
+00389         return perFrame > 0 ? perFrame : 1;
+00390     }
+00391 
+00399     uint32_t                                getIterationsPerFrame() const
+00400     {
+00401         return getIterationsPerFrame(getSettings(), getBondCount());
+00402     }
+00403 
+00404 };
+00405 
+00406 } // namespace Blast
+00407 } // namespace Nv
+00408 
+00409 
+00410 #endif // ifndef NVBLASTEXTSTRESSSOLVER_H
 
-

sdk/extensions/physx/include/NvBlastExtStressSolver.h File Reference

#include "common/PxRenderBuffer.h"
+

sdk/extensions/stress/include/NvBlastExtStressSolver.h File Reference

#include "NvBlastTypes.h"
+#include "PxVec3.h"
#include <vector>
-#include "NvPreprocessor.h"

Go to the source code of this file. + + + + + + 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 798e217..50dacc7 100644 --- a/docs/api_docs/files/_nv_blast_ext_sync_8h-source.html +++ b/docs/api_docs/files/_nv_blast_ext_sync_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/extensions/physx/include/NvBlastExtSync.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastExtSync.h Source File @@ -19,139 +19,157 @@
-

sdk/extensions/physx/include/NvBlastExtSync.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTEXTSYNC_H
-00012 #define NVBLASTEXTSYNC_H
-00013 
-00014 #include "NvBlastTk.h"
-00015 #include "foundation/PxTransform.h"
-00016 #include "foundation/PxAllocatorCallback.h"
-00017 #include "NvPreprocessor.h"
-00018 
-00019 
-00020 namespace Nv
-00021 {
-00022 namespace Blast
-00023 {
-00024 
-00025 class ExtPxFamily;
-00026 class ExtPxManager;
+

sdk/extensions/physx/include/NvBlastExtSync.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
 00027 
 00028 
-00032 struct ExtSyncEventType
-00033 {
-00034     enum Enum
-00035     {
-00036         Fracture = 0, 
-00037         FamilySync,   
-00038         Physics,      
-00039 
-00040         Count
-00041     };
-00042 };
-00043 
-00044 
-00048 struct NV_DLL_EXPORT ExtSyncEvent
-00049 {
-00050     ExtSyncEvent(ExtSyncEventType::Enum t) : type(t) {}
-00051     virtual ~ExtSyncEvent() {}
-00052 
-00053     template<class T>
-00054     const T* getEvent() const { return reinterpret_cast<const T*>(this); }
-00055 
-00061     virtual ExtSyncEvent* clone() const = 0;
+00029 #ifndef NVBLASTEXTSYNC_H
+00030 #define NVBLASTEXTSYNC_H
+00031 
+00032 #include "NvBlastTk.h"
+00033 #include "foundation/PxTransform.h"
+00034 #include "NvPreprocessor.h"
+00035 #include "NvBlastGlobals.h"
+00036 
+00037 
+00038 namespace Nv
+00039 {
+00040 namespace Blast
+00041 {
+00042 
+00043 class ExtPxFamily;
+00044 class ExtPxManager;
+00045 
+00046 
+00050 struct ExtSyncEventType
+00051 {
+00052     enum Enum
+00053     {
+00054         Fracture = 0, 
+00055         FamilySync,   
+00056         Physics,      
+00057 
+00058         Count
+00059     };
+00060 };
+00061 
 00062 
-00063     void release();
-00064 
-00065     ExtSyncEventType::Enum  type;       
-00066     uint64_t                timestamp;  
-00067     NvBlastID               familyID;   
-00068 };
-00069 
+00066 struct NV_DLL_EXPORT ExtSyncEvent
+00067 {
+00068     ExtSyncEvent(ExtSyncEventType::Enum t) : type(t) {}
+00069     virtual ~ExtSyncEvent() {}
 00070 
-00074 template <class T, ExtSyncEventType::Enum eventType>
-00075 struct ExtSyncEventInstance : public ExtSyncEvent
-00076 {
-00077     ExtSyncEventInstance() : ExtSyncEvent(eventType) {}
-00078 
-00079     static const ExtSyncEventType::Enum EVENT_TYPE = eventType;
+00071     template<class T>
+00072     const T* getEvent() const { return reinterpret_cast<const T*>(this); }
+00073 
+00079     virtual ExtSyncEvent* clone() const = 0;
 00080 
-00081     ExtSyncEvent* clone() const override
-00082     {
-00083         return new (NvBlastTkFrameworkGet()->getAllocatorCallback().allocate(sizeof(T), nullptr, __FILE__, __LINE__)) T(*(T*)this);
-00084     }
-00085 };
-00086 
+00081     void release();
+00082 
+00083     ExtSyncEventType::Enum  type;       
+00084     uint64_t                timestamp;  
+00085     NvBlastID               familyID;   
+00086 };
 00087 
-00091 struct ExtSyncEventFracture : public ExtSyncEventInstance<ExtSyncEventFracture, ExtSyncEventType::Fracture>
-00092 {
-00093     std::vector<NvBlastBondFractureData>    bondFractures;  
-00094     std::vector<NvBlastChunkFractureData>   chunkFractures; 
-00095 };
+00088 
+00092 template <class T, ExtSyncEventType::Enum eventType>
+00093 struct ExtSyncEventInstance : public ExtSyncEvent
+00094 {
+00095     ExtSyncEventInstance() : ExtSyncEvent(eventType) {}
 00096 
-00097 
-00101 struct ExtSyncEventFamilySync : public ExtSyncEventInstance<ExtSyncEventFamilySync, ExtSyncEventType::FamilySync>
-00102 {
-00103     std::vector<char> family;   
-00104 };
+00097     static const ExtSyncEventType::Enum EVENT_TYPE = eventType;
+00098 
+00099     ExtSyncEvent* clone() const override
+00100     {
+00101         return NVBLAST_NEW (T) (*(T*)this);
+00102     }
+00103 };
+00104 
 00105 
-00106 
-00110 struct ExtSyncEventPhysicsSync : public ExtSyncEventInstance<ExtSyncEventPhysicsSync, ExtSyncEventType::Physics>
-00111 {
-00112     struct ActorData
-00113     {
-00114         uint32_t            actorIndex; 
-00115         physx::PxTransform  transform;  
-00116     };
-00117 
-00118     std::vector<ActorData> data;        
-00119 };
-00120 
-00121 
-00127 class NV_DLL_EXPORT ExtSync : public TkEventListener
-00128 {
-00129 public:
-00131 
-00137     static ExtSync*     create();
+00109 struct ExtSyncEventFracture : public ExtSyncEventInstance<ExtSyncEventFracture, ExtSyncEventType::Fracture>
+00110 {
+00111     std::vector<NvBlastBondFractureData>    bondFractures;  
+00112     std::vector<NvBlastChunkFractureData>   chunkFractures; 
+00113 };
+00114 
+00115 
+00119 struct ExtSyncEventFamilySync : public ExtSyncEventInstance<ExtSyncEventFamilySync, ExtSyncEventType::FamilySync>
+00120 {
+00121     std::vector<char> family;   
+00122 };
+00123 
+00124 
+00128 struct ExtSyncEventPhysicsSync : public ExtSyncEventInstance<ExtSyncEventPhysicsSync, ExtSyncEventType::Physics>
+00129 {
+00130     struct ActorData
+00131     {
+00132         uint32_t            actorIndex; 
+00133         physx::PxTransform  transform;  
+00134     };
+00135 
+00136     std::vector<ActorData> data;        
+00137 };
 00138 
 00139 
-00141 
-00145     virtual void        release() = 0;
-00146 
-00147 
+00145 class NV_DLL_EXPORT ExtSync : public TkEventListener
+00146 {
+00147 public:
 00149 
-00156     virtual void        receive(const TkEvent* events, uint32_t eventCount)  = 0;
+00155     static ExtSync*     create();
+00156 
 00157 
-00163     virtual void        syncFamily(const TkFamily& family) = 0;
+00159 
+00163     virtual void        release() = 0;
 00164 
-00170     virtual void        syncFamily(const ExtPxFamily& family) = 0;
-00171 
-00177     virtual uint32_t    getSyncBufferSize() const = 0;
-00178 
-00185     virtual void        acquireSyncBuffer(const ExtSyncEvent*const*& buffer, uint32_t& size) const = 0;
-00186 
-00190     virtual void        releaseSyncBuffer() = 0;
-00191 
-00192 
-00194 
-00205     virtual void        applySyncBuffer(TkFramework& framework, const ExtSyncEvent** buffer, uint32_t size, TkGroup* groupForNewActors, ExtPxManager* manager = nullptr) = 0;
-00206 
-00207 };
-00208 
-00209 } // namespace Blast
-00210 } // namespace Nv
-00211 
+00165 
+00167 
+00174     virtual void        receive(const TkEvent* events, uint32_t eventCount)  = 0;
+00175 
+00181     virtual void        syncFamily(const TkFamily& family) = 0;
+00182 
+00188     virtual void        syncFamily(const ExtPxFamily& family) = 0;
+00189 
+00195     virtual uint32_t    getSyncBufferSize() const = 0;
+00196 
+00203     virtual void        acquireSyncBuffer(const ExtSyncEvent*const*& buffer, uint32_t& size) const = 0;
+00204 
+00208     virtual void        releaseSyncBuffer() = 0;
+00209 
+00210 
 00212 
-00213 #endif // ifndef NVBLASTEXTSYNC_H
+00223     virtual void        applySyncBuffer(TkFramework& framework, const ExtSyncEvent** buffer, uint32_t size, TkGroup* groupForNewActors, ExtPxManager* manager = nullptr) = 0;
+00224 
+00225 };
+00226 
+00227 } // namespace Blast
+00228 } // namespace Nv
+00229 
+00230 
+00231 #endif // ifndef NVBLASTEXTSYNC_H
 

Classes

struct  Nv::Blast::ExtForceMode
class  Nv::Blast::ExtStressSolver
struct  Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer
struct  Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine
struct  Nv::Blast::ExtStressSolverSettings

Namespaces

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 new file mode 100644 index 0000000..e19fc8c --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h-source.html @@ -0,0 +1,88 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/serialization/include/NvBlastExtTkSerialization.h Source File + + + + + + + +

sdk/extensions/serialization/include/NvBlastExtTkSerialization.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #pragma once
+00030 
+00031 #include "NvBlastGlobals.h"
+00032 
+00033 
+00039 namespace Nv
+00040 {
+00041 namespace Blast
+00042 {
+00043 
+00044 // Forward declarations
+00045 class ExtSerialization;
+00046 class TkFramework;
+00047 class TkAsset;
+00048 
+00049 
+00051 struct TkObjectTypeID
+00052 {
+00053     enum Enum
+00054     {
+00055         Asset = NVBLAST_FOURCC('T', 'K', 'A', 'S'),
+00056     };
+00057 };
+00058 
+00059 }   // namespace Blast
+00060 }   // namespace Nv
+00061 
+00062 
+00072 NVBLAST_API size_t      NvBlastExtTkSerializerLoadSet(Nv::Blast::TkFramework& framework, Nv::Blast::ExtSerialization& serialization);
+00073 
+00074 
+00089 NVBLAST_API uint64_t    NvBlastExtSerializationSerializeTkAssetIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const Nv::Blast::TkAsset* asset);
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h.html b/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h.html new file mode 100644 index 0000000..34692d6 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h.html @@ -0,0 +1,132 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/serialization/include/NvBlastExtTkSerialization.h File Reference + + + + + + + +
+

sdk/extensions/serialization/include/NvBlastExtTkSerialization.h File Reference

#include "NvBlastGlobals.h"
+ +

+Go to the source code of this file.

+ + + + + + + + + + + + + + +

Classes

struct  Nv::Blast::TkObjectTypeID

Namespaces

namespace  Nv
namespace  Nv::Blast

Functions

uint64_t NvBlastExtSerializationSerializeTkAssetIntoBuffer (void *&buffer, Nv::Blast::ExtSerialization &serialization, const Nv::Blast::TkAsset *asset)
size_t NvBlastExtTkSerializerLoadSet (Nv::Blast::TkFramework &framework, Nv::Blast::ExtSerialization &serialization)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t NvBlastExtSerializationSerializeTkAssetIntoBuffer (void *&  buffer,
Nv::Blast::ExtSerialization serialization,
const Nv::Blast::TkAsset asset 
)
+
+
+ +

+Utility wrapper function to serialize a TkAsset. Allocates the buffer internally using the callack set in ExtSerialization::setBufferProvider.

+Equivalent to:

+serialization.serializeIntoBuffer(buffer, asset, Nv::Blast::TkObjectTypeID::Asset);

+

Parameters:
+ + + + +
[out] buffer Pointer to the buffer created.
[in] serialization Serialization manager.
[in] asset Pointer to the TkAsset to serialize.
+
+
Returns:
the number of bytes serialized into the buffer (zero if unsuccessful).
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
size_t NvBlastExtTkSerializerLoadSet (Nv::Blast::TkFramework framework,
Nv::Blast::ExtSerialization serialization 
)
+
+
+ +

+Load all high-level serializers into the ExtSerialization manager.

+It does no harm to call this function more than once; serializers already loaded will not be loaded again.

+

Parameters:
+ + +
[in] serialization Serialization manager into which to load serializers.
+
+
Returns:
the number of serializers loaded.
+ +
+

+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_fixed_array_8h-source.html b/docs/api_docs/files/_nv_blast_fixed_array_8h-source.html index 81fb650..71d9db1 100644 --- a/docs/api_docs/files/_nv_blast_fixed_array_8h-source.html +++ b/docs/api_docs/files/_nv_blast_fixed_array_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/common/NvBlastFixedArray.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastFixedArray.h Source File @@ -19,111 +19,129 @@
-

sdk/common/NvBlastFixedArray.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTFIXEDARRAY_H
-00012 #define NVBLASTFIXEDARRAY_H
-00013 
-00014 #include "NvBlastAssert.h"
-00015 #include "NvBlastMemory.h"
-00016 
-00017 namespace Nv
-00018 {
-00019 namespace Blast
-00020 {
-00021 
-00045 template <class T>
-00046 class FixedArray
-00047 {
-00048 public:
-00049     explicit FixedArray() : m_size(0)
-00050     {
-00051     }
-00052 
-00053     static size_t requiredMemorySize(uint32_t capacity)
-00054     {
-00055         return align16(sizeof(FixedArray<T>)) + align16(capacity * sizeof(T));
-00056     }
-00057 
-00058     NV_FORCE_INLINE T& pushBack(T& t)
-00059     {
-00060         new (data() + m_size) T(t);
-00061         return data()[m_size++];
-00062     }
-00063 
-00064     T popBack()
-00065     {
-00066         NVBLAST_ASSERT(m_size);
-00067         T t = data()[m_size - 1];
-00068         data()[--m_size].~T();
-00069         return t;
-00070     }
-00071 
-00072     void clear()
-00073     {
-00074         for(T* first = data(); first < data() + m_size; ++first)
-00075             first->~T();
-00076         m_size = 0;
-00077     }
-00078 
-00079     NV_FORCE_INLINE void forceSize_Unsafe(uint32_t s)
-00080     {
-00081         m_size = s;
-00082     }
-00083 
-00084     NV_FORCE_INLINE T& operator[](uint32_t idx)
-00085     {
-00086         NVBLAST_ASSERT(idx < m_size);
-00087         return data()[idx];
+

sdk/common/NvBlastFixedArray.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTFIXEDARRAY_H
+00030 #define NVBLASTFIXEDARRAY_H
+00031 
+00032 #include "NvBlastAssert.h"
+00033 #include "NvBlastMemory.h"
+00034 
+00035 namespace Nv
+00036 {
+00037 namespace Blast
+00038 {
+00039 
+00063 template <class T>
+00064 class FixedArray
+00065 {
+00066 public:
+00067     explicit FixedArray() : m_size(0)
+00068     {
+00069     }
+00070 
+00071     static size_t requiredMemorySize(uint32_t capacity)
+00072     {
+00073         return align16(sizeof(FixedArray<T>)) + align16(capacity * sizeof(T));
+00074     }
+00075 
+00076     NV_FORCE_INLINE T& pushBack(T& t)
+00077     {
+00078         new (data() + m_size) T(t);
+00079         return data()[m_size++];
+00080     }
+00081 
+00082     T popBack()
+00083     {
+00084         NVBLAST_ASSERT(m_size);
+00085         T t = data()[m_size - 1];
+00086         data()[--m_size].~T();
+00087         return t;
 00088     }
 00089 
-00090     NV_FORCE_INLINE const T& operator[](uint32_t idx) const
-00091     {
-00092         NVBLAST_ASSERT(idx < m_size);
-00093         return data()[idx];
-00094     }
-00095 
-00096     NV_FORCE_INLINE T& at(uint32_t idx)
-00097     {
-00098         NVBLAST_ASSERT(idx < m_size);
-00099         return data()[idx];
+00090     void clear()
+00091     {
+00092         for(T* first = data(); first < data() + m_size; ++first)
+00093             first->~T();
+00094         m_size = 0;
+00095     }
+00096 
+00097     NV_FORCE_INLINE void forceSize_Unsafe(uint32_t s)
+00098     {
+00099         m_size = s;
 00100     }
 00101 
-00102     NV_FORCE_INLINE const T& at(uint32_t idx) const
-00103     {
+00102     NV_FORCE_INLINE T& operator[](uint32_t idx)
+00103     {
 00104         NVBLAST_ASSERT(idx < m_size);
 00105         return data()[idx];
 00106     }
 00107 
-00108     NV_FORCE_INLINE uint32_t size() const
+00108     NV_FORCE_INLINE const T& operator[](uint32_t idx) const
 00109     {
-00110         return m_size;
-00111     }
-00112 
-00113 private:
-00114     uint32_t m_size;
-00115 
-00116     NV_FORCE_INLINE T* data()
-00117     {
-00118         return (T*)((char*)this + sizeof(FixedArray<T>));
-00119     }
-00120 
-00121 private:
-00122     FixedArray(const FixedArray& that);
-00123 };
-00124 
-00125 } // namespace Blast
-00126 } // namespace Nv
-00127 
-00128 #endif // ifndef NVBLASTFIXEDARRAY_H
+00110         NVBLAST_ASSERT(idx < m_size);
+00111         return data()[idx];
+00112     }
+00113 
+00114     NV_FORCE_INLINE T& at(uint32_t idx)
+00115     {
+00116         NVBLAST_ASSERT(idx < m_size);
+00117         return data()[idx];
+00118     }
+00119 
+00120     NV_FORCE_INLINE const T& at(uint32_t idx) const
+00121     {
+00122         NVBLAST_ASSERT(idx < m_size);
+00123         return data()[idx];
+00124     }
+00125 
+00126     NV_FORCE_INLINE uint32_t size() const
+00127     {
+00128         return m_size;
+00129     }
+00130 
+00131 private:
+00132     uint32_t m_size;
+00133 
+00134     NV_FORCE_INLINE T* data()
+00135     {
+00136         return (T*)((char*)this + sizeof(FixedArray<T>));
+00137     }
+00138 
+00139 private:
+00140     FixedArray(const FixedArray& that);
+00141 };
+00142 
+00143 } // namespace Blast
+00144 } // namespace Nv
+00145 
+00146 #endif // ifndef NVBLASTFIXEDARRAY_H
 
-

sdk/common/NvBlastFixedBitmap.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTFIXEDBITMAP_H
-00012 #define NVBLASTFIXEDBITMAP_H
-00013 
-00014 #include "NvBlastAssert.h"
-00015 #include "NvBlastMemory.h"
-00016 #include <cstring>
-00017 
-00018 namespace Nv
-00019 {
-00020 namespace Blast
-00021 {
-00022 
-00045 class FixedBitmap
-00046 {
-00047 public:
-00048     explicit FixedBitmap(uint32_t bitsCount)
-00049     {
-00050         m_bitsCount = bitsCount;
-00051     }
-00052 
-00053     static uint32_t getWordsCount(uint32_t bitsCount)
-00054     {
-00055         return (bitsCount + 31) >> 5;
-00056     }
-00057 
-00058     static size_t requiredMemorySize(uint32_t bitsCount)
-00059     {
-00060         return align16(sizeof(FixedBitmap)) + align16(getWordsCount(bitsCount) * sizeof(uint32_t));
-00061     }
-00062 
-00063     void clear()
-00064     {
-00065         memset(data(), 0, getWordsCount(m_bitsCount) * sizeof(uint32_t));
-00066     }
-00067 
-00068     void fill()
-00069     {
-00070         const uint32_t wordCount = getWordsCount(m_bitsCount);
-00071         uint32_t* mem = data();
-00072         memset(mem, 0xFF, wordCount * sizeof(uint32_t));
-00073         const uint32_t bitsRemainder = m_bitsCount & 31;
-00074         if (bitsRemainder > 0)
-00075         {
-00076             mem[wordCount - 1] &= ~(0xFFFFFFFF << bitsRemainder);
-00077         }
-00078     }
-00079 
-00080     int test(uint32_t index) const
-00081     {
-00082         NVBLAST_ASSERT(index < m_bitsCount);
-00083         return data()[index >> 5] & (1 << (index & 31));
+

sdk/common/NvBlastFixedBitmap.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTFIXEDBITMAP_H
+00030 #define NVBLASTFIXEDBITMAP_H
+00031 
+00032 #include "NvBlastAssert.h"
+00033 #include "NvBlastMemory.h"
+00034 #include <cstring>
+00035 
+00036 namespace Nv
+00037 {
+00038 namespace Blast
+00039 {
+00040 
+00063 class FixedBitmap
+00064 {
+00065 public:
+00066     explicit FixedBitmap(uint32_t bitsCount)
+00067     {
+00068         m_bitsCount = bitsCount;
+00069     }
+00070 
+00071     static uint32_t getWordsCount(uint32_t bitsCount)
+00072     {
+00073         return (bitsCount + 31) >> 5;
+00074     }
+00075 
+00076     static size_t requiredMemorySize(uint32_t bitsCount)
+00077     {
+00078         return align16(sizeof(FixedBitmap)) + align16(getWordsCount(bitsCount) * sizeof(uint32_t));
+00079     }
+00080 
+00081     void clear()
+00082     {
+00083         memset(data(), 0, getWordsCount(m_bitsCount) * sizeof(uint32_t));
 00084     }
 00085 
-00086     void set(uint32_t index)
+00086     void fill()
 00087     {
-00088         NVBLAST_ASSERT(index < m_bitsCount);
-00089         data()[index >> 5] |= 1 << (index & 31);
-00090     }
-00091 
-00092     void reset(uint32_t index)
-00093     {
-00094         NVBLAST_ASSERT(index < m_bitsCount);
-00095         data()[index >> 5] &= ~(1 << (index & 31));
+00088         const uint32_t wordCount = getWordsCount(m_bitsCount);
+00089         uint32_t* mem = data();
+00090         memset(mem, 0xFF, wordCount * sizeof(uint32_t));
+00091         const uint32_t bitsRemainder = m_bitsCount & 31;
+00092         if (bitsRemainder > 0)
+00093         {
+00094             mem[wordCount - 1] &= ~(0xFFFFFFFF << bitsRemainder);
+00095         }
 00096     }
 00097 
-00098 private:
-00099     uint32_t m_bitsCount;
-00100 
-00101     NV_FORCE_INLINE uint32_t* data()
-00102     {
-00103         return (uint32_t*)((char*)this + sizeof(FixedBitmap));
-00104     }
-00105 
-00106     NV_FORCE_INLINE const uint32_t* data() const
-00107     {
-00108         return (uint32_t*)((char*)this + sizeof(FixedBitmap));
-00109     }
-00110 
-00111 private:
-00112     FixedBitmap(const FixedBitmap& that);
-00113 };
-00114 
-00115 } // namespace Blast
-00116 } // namespace Nv
-00117 
-00118 #endif // ifndef NVBLASTFIXEDBITMAP_H
+00098     int test(uint32_t index) const
+00099     {
+00100         NVBLAST_ASSERT(index < m_bitsCount);
+00101         return data()[index >> 5] & (1 << (index & 31));
+00102     }
+00103 
+00104     void set(uint32_t index)
+00105     {
+00106         NVBLAST_ASSERT(index < m_bitsCount);
+00107         data()[index >> 5] |= 1 << (index & 31);
+00108     }
+00109 
+00110     void reset(uint32_t index)
+00111     {
+00112         NVBLAST_ASSERT(index < m_bitsCount);
+00113         data()[index >> 5] &= ~(1 << (index & 31));
+00114     }
+00115 
+00116 private:
+00117     uint32_t m_bitsCount;
+00118 
+00119     NV_FORCE_INLINE uint32_t* data()
+00120     {
+00121         return (uint32_t*)((char*)this + sizeof(FixedBitmap));
+00122     }
+00123 
+00124     NV_FORCE_INLINE const uint32_t* data() const
+00125     {
+00126         return (uint32_t*)((char*)this + sizeof(FixedBitmap));
+00127     }
+00128 
+00129 private:
+00130     FixedBitmap(const FixedBitmap& that);
+00131 };
+00132 
+00133 } // namespace Blast
+00134 } // namespace Nv
+00135 
+00136 #endif // ifndef NVBLASTFIXEDBITMAP_H
 
-

sdk/common/NvBlastFixedBoolArray.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTFIXEDBOOLARRAY_H
-00012 #define NVBLASTFIXEDBOOLARRAY_H
-00013 
-00014 #include "NvBlastAssert.h"
-00015 #include "NvBlastMemory.h"
-00016 #include <cstring>
-00017 
-00018 namespace Nv
-00019 {
-00020 namespace Blast
-00021 {
-00022 
-00045 class FixedBoolArray
-00046 {
-00047 public:
-00048     explicit FixedBoolArray(uint32_t size)
-00049     {
-00050         m_size = size;
-00051     }
-00052 
-00053     static size_t requiredMemorySize(uint32_t size)
-00054     {
-00055         return align16(sizeof(FixedBoolArray)) + align16(size);
-00056     }
-00057 
-00058     void clear()
-00059     {
-00060         memset(data(), 0, m_size);
-00061     }
-00062 
-00063     void fill()
-00064     {
-00065         memset(data(), 1, m_size);
-00066     }
-00067 
-00068     int test(uint32_t index) const
-00069     {
-00070         NVBLAST_ASSERT(index < m_size);
-00071         return data()[index];
-00072     }
-00073 
-00074     void set(uint32_t index)
-00075     {
-00076         NVBLAST_ASSERT(index < m_size);
-00077         data()[index] = 1;
-00078     }
-00079 
-00080     void reset(uint32_t index)
-00081     {
-00082         NVBLAST_ASSERT(index < m_size);
-00083         data()[index] = 0;
+

sdk/common/NvBlastFixedBoolArray.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTFIXEDBOOLARRAY_H
+00030 #define NVBLASTFIXEDBOOLARRAY_H
+00031 
+00032 #include "NvBlastAssert.h"
+00033 #include "NvBlastMemory.h"
+00034 #include <cstring>
+00035 
+00036 namespace Nv
+00037 {
+00038 namespace Blast
+00039 {
+00040 
+00063 class FixedBoolArray
+00064 {
+00065 public:
+00066     explicit FixedBoolArray(uint32_t size)
+00067     {
+00068         m_size = size;
+00069     }
+00070 
+00071     static size_t requiredMemorySize(uint32_t size)
+00072     {
+00073         return align16(sizeof(FixedBoolArray)) + align16(size);
+00074     }
+00075 
+00076     void clear()
+00077     {
+00078         memset(data(), 0, m_size);
+00079     }
+00080 
+00081     void fill()
+00082     {
+00083         memset(data(), 1, m_size);
 00084     }
 00085 
-00086 private:
-00087     uint32_t m_size;
-00088 
-00089     NV_FORCE_INLINE char* data()
-00090     {
-00091         return ((char*)this + sizeof(FixedBoolArray));
-00092     }
-00093 
-00094     NV_FORCE_INLINE const char* data() const
-00095     {
-00096         return ((char*)this + sizeof(FixedBoolArray));
-00097     }
-00098 
-00099 private:
-00100     FixedBoolArray(const FixedBoolArray& that);
-00101 };
-00102 
-00103 } // namespace Blast
-00104 } // namespace Nv
-00105 
-00106 #endif // ifndef NVBLASTFIXEDBOOLARRAY_H
+00086     int test(uint32_t index) const
+00087     {
+00088         NVBLAST_ASSERT(index < m_size);
+00089         return data()[index];
+00090     }
+00091 
+00092     void set(uint32_t index)
+00093     {
+00094         NVBLAST_ASSERT(index < m_size);
+00095         data()[index] = 1;
+00096     }
+00097 
+00098     void reset(uint32_t index)
+00099     {
+00100         NVBLAST_ASSERT(index < m_size);
+00101         data()[index] = 0;
+00102     }
+00103 
+00104 private:
+00105     uint32_t m_size;
+00106 
+00107     NV_FORCE_INLINE char* data()
+00108     {
+00109         return ((char*)this + sizeof(FixedBoolArray));
+00110     }
+00111 
+00112     NV_FORCE_INLINE const char* data() const
+00113     {
+00114         return ((char*)this + sizeof(FixedBoolArray));
+00115     }
+00116 
+00117 private:
+00118     FixedBoolArray(const FixedBoolArray& that);
+00119 };
+00120 
+00121 } // namespace Blast
+00122 } // namespace Nv
+00123 
+00124 #endif // ifndef NVBLASTFIXEDBOOLARRAY_H
 
-

sdk/common/NvBlastFixedPriorityQueue.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTFIXEDPRIORITYQUEUE_H
-00012 #define NVBLASTFIXEDPRIORITYQUEUE_H
-00013 
-00014 #include "NvBlastAssert.h"
-00015 #include "NvBlastMemory.h"
-00016 
-00017 namespace Nv
-00018 {
-00019 
-00020 namespace Blast
-00021 {
-00022 
-00044 template <typename A>
-00045 struct Less
-00046 {
-00047     bool operator()(const A& a, const A& b) const
-00048     {
-00049         return a < b;
-00050     }
-00051 };
-00052 
-00053 
-00054 template<class Element, class Comparator = Less<Element> >
-00055 class FixedPriorityQueue : protected Comparator // inherit so that stateless comparators take no space
-00056 {
-00057 public:
-00058     FixedPriorityQueue(const Comparator& less = Comparator()) : Comparator(less), mHeapSize(0)
-00059     {
-00060     }
-00061         
-00062     ~FixedPriorityQueue()
-00063     {
-00064     }
-00065 
-00066     static size_t requiredMemorySize(uint32_t capacity)
-00067     {
-00068         return align16(sizeof(FixedPriorityQueue<Element, Comparator>)) + align16(capacity * sizeof(Element));
-00069     }
-00070         
-00072     const Element top() const
-00073     {
-00074         return data()[0];
-00075     }
-00076 
-00078     Element top()
-00079     {
-00080         return data()[0];
-00081     }
-00082         
-00084     bool empty() const
-00085     {
-00086         return (mHeapSize == 0);
+

sdk/common/NvBlastFixedPriorityQueue.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTFIXEDPRIORITYQUEUE_H
+00030 #define NVBLASTFIXEDPRIORITYQUEUE_H
+00031 
+00032 #include "NvBlastAssert.h"
+00033 #include "NvBlastMemory.h"
+00034 
+00035 namespace Nv
+00036 {
+00037 
+00038 namespace Blast
+00039 {
+00040 
+00062 template <typename A>
+00063 struct Less
+00064 {
+00065     bool operator()(const A& a, const A& b) const
+00066     {
+00067         return a < b;
+00068     }
+00069 };
+00070 
+00071 
+00072 template<class Element, class Comparator = Less<Element> >
+00073 class FixedPriorityQueue : protected Comparator // inherit so that stateless comparators take no space
+00074 {
+00075 public:
+00076     FixedPriorityQueue(const Comparator& less = Comparator()) : Comparator(less), mHeapSize(0)
+00077     {
+00078     }
+00079         
+00080     ~FixedPriorityQueue()
+00081     {
+00082     }
+00083 
+00084     static size_t requiredMemorySize(uint32_t capacity)
+00085     {
+00086         return align16(sizeof(FixedPriorityQueue<Element, Comparator>)) + align16(capacity * sizeof(Element));
 00087     }
 00088         
-00090     void clear()
-00091     {
-00092         mHeapSize = 0;
-00093     }  
+00090     const Element top() const
+00091     {
+00092         return data()[0];
+00093     }
 00094 
-00096     void push(const Element& value)
+00096     Element top()
 00097     {
-00098         uint32_t newIndex;
-00099         uint32_t parentIndex = parent(mHeapSize);
-00100 
-00101         for (newIndex = mHeapSize; newIndex > 0 && compare(value, data()[parentIndex]); newIndex = parentIndex, parentIndex= parent(newIndex)) 
-00102         {
-00103             data()[ newIndex ] = data()[parentIndex];
-00104         }
-00105         data()[newIndex] = value; 
-00106         mHeapSize++;
-00107         NVBLAST_ASSERT(valid());
-00108     }
-00109 
-00111     Element pop()
-00112     {
-00113         NVBLAST_ASSERT(mHeapSize > 0);
-00114         uint32_t i, child;
-00115         //try to avoid LHS
-00116         uint32_t tempHs = mHeapSize-1;
-00117         mHeapSize = tempHs;
-00118         Element min = data()[0];
-00119         Element last = data()[tempHs];
-00120             
-00121         for (i = 0; (child = left(i)) < tempHs; i = child) 
-00122         {
-00123             /* Find highest priority child */
-00124             const uint32_t rightChild = child + 1;
-00125             
-00126             child += ((rightChild < tempHs) & compare((data()[rightChild]), (data()[child]))) ? 1 : 0;
+00098         return data()[0];
+00099     }
+00100         
+00102     bool empty() const
+00103     {
+00104         return (mHeapSize == 0);
+00105     }
+00106         
+00108     void clear()
+00109     {
+00110         mHeapSize = 0;
+00111     }  
+00112 
+00114     void push(const Element& value)
+00115     {
+00116         uint32_t newIndex;
+00117         uint32_t parentIndex = parent(mHeapSize);
+00118 
+00119         for (newIndex = mHeapSize; newIndex > 0 && compare(value, data()[parentIndex]); newIndex = parentIndex, parentIndex= parent(newIndex)) 
+00120         {
+00121             data()[ newIndex ] = data()[parentIndex];
+00122         }
+00123         data()[newIndex] = value; 
+00124         mHeapSize++;
+00125         NVBLAST_ASSERT(valid());
+00126     }
 00127 
-00128             if(compare(last, data()[child]))
-00129                 break;
-00130 
-00131             data()[i] = data()[child];
-00132         }
-00133         data()[ i ] = last;
-00134             
-00135         NVBLAST_ASSERT(valid());
-00136         return min;
-00137     } 
-00138 
-00140     bool valid() const
-00141     {
-00142         const Element& min = data()[0];
-00143         for(uint32_t i=1; i<mHeapSize; ++i)
-00144         {
-00145             if(compare(data()[i], min))
-00146                 return false;
-00147         }
+00129     Element pop()
+00130     {
+00131         NVBLAST_ASSERT(mHeapSize > 0);
+00132         uint32_t i, child;
+00133         //try to avoid LHS
+00134         uint32_t tempHs = mHeapSize-1;
+00135         mHeapSize = tempHs;
+00136         Element min = data()[0];
+00137         Element last = data()[tempHs];
+00138             
+00139         for (i = 0; (child = left(i)) < tempHs; i = child) 
+00140         {
+00141             /* Find highest priority child */
+00142             const uint32_t rightChild = child + 1;
+00143             
+00144             child += ((rightChild < tempHs) & compare((data()[rightChild]), (data()[child]))) ? 1 : 0;
+00145 
+00146             if(compare(last, data()[child]))
+00147                 break;
 00148 
-00149         return true;
-00150     }
-00151 
-00153     uint32_t size() const
-00154     {
-00155         return mHeapSize;
-00156     }
-00157 
-00158 private:
-00159     uint32_t mHeapSize;
-00160 
-00161     NV_FORCE_INLINE Element* data()
-00162     {
-00163         return (Element*)((char*)this + sizeof(FixedPriorityQueue<Element, Comparator>));
-00164     }
-00165 
-00166     NV_FORCE_INLINE Element* data() const
-00167     {
-00168         return (Element*)((char*)this + sizeof(FixedPriorityQueue<Element, Comparator>));
-00169     }
-00170 
-00171     bool compare(const Element& a, const Element& b) const
+00149             data()[i] = data()[child];
+00150         }
+00151         data()[ i ] = last;
+00152             
+00153         NVBLAST_ASSERT(valid());
+00154         return min;
+00155     } 
+00156 
+00158     bool valid() const
+00159     {
+00160         const Element& min = data()[0];
+00161         for(uint32_t i=1; i<mHeapSize; ++i)
+00162         {
+00163             if(compare(data()[i], min))
+00164                 return false;
+00165         }
+00166 
+00167         return true;
+00168     }
+00169 
+00171     uint32_t size() const
 00172     {
-00173         return Comparator::operator()(a,b);
+00173         return mHeapSize;
 00174     }
 00175 
-00176     static uint32_t left(uint32_t nodeIndex) 
-00177     {
-00178         return (nodeIndex << 1) + 1;
-00179     }
-00180         
-00181     static uint32_t parent(uint32_t nodeIndex) 
-00182     {
-00183         return (nodeIndex - 1) >> 1;
-00184     }
-00185 
-00186     FixedPriorityQueue<Element, Comparator>& operator = (const FixedPriorityQueue<Element, Comparator>);
-00187 };
+00176 private:
+00177     uint32_t mHeapSize;
+00178 
+00179     NV_FORCE_INLINE Element* data()
+00180     {
+00181         return (Element*)((char*)this + sizeof(FixedPriorityQueue<Element, Comparator>));
+00182     }
+00183 
+00184     NV_FORCE_INLINE Element* data() const
+00185     {
+00186         return (Element*)((char*)this + sizeof(FixedPriorityQueue<Element, Comparator>));
+00187     }
 00188 
-00189 } // namespace Blast
-00190 } // namespace Nv
-00191 
-00192 #endif // ifndef NVBLASTFIXEDPRIORITYQUEUE_H
+00189     bool compare(const Element& a, const Element& b) const
+00190     {
+00191         return Comparator::operator()(a,b);
+00192     }
+00193 
+00194     static uint32_t left(uint32_t nodeIndex) 
+00195     {
+00196         return (nodeIndex << 1) + 1;
+00197     }
+00198         
+00199     static uint32_t parent(uint32_t nodeIndex) 
+00200     {
+00201         return (nodeIndex - 1) >> 1;
+00202     }
+00203 
+00204     FixedPriorityQueue<Element, Comparator>& operator = (const FixedPriorityQueue<Element, Comparator>);
+00205 };
+00206 
+00207 } // namespace Blast
+00208 } // namespace Nv
+00209 
+00210 #endif // ifndef NVBLASTFIXEDPRIORITYQUEUE_H
 
-

sdk/common/NvBlastGeometry.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 
-00012 #ifndef NVBLASTGEOMETRY_H
-00013 #define NVBLASTGEOMETRY_H
-00014 
-00015 #include "NvBlastTypes.h"
-00016 #include "NvBlastMath.h"
-00017 
-00018 #include<limits>
-00019 
-00020 
-00021 namespace Nv {
-00022 namespace Blast{
-00023 
-00024 NV_FORCE_INLINE uint32_t findNodeByPositionLinked(const float point[4],
-00025     const uint32_t firstGraphNodeIndex, const uint32_t* familyGraphNodeIndexLinks,
-00026     const uint32_t* adjacencyPartition, const uint32_t* adjacentNodeIndices, const uint32_t* adjacentBondIndices,
-00027     const NvBlastBond* bonds, const float* bondHealths)
-00028 {
-00029     uint32_t nodeIndex = firstGraphNodeIndex;
-00030     uint32_t closestNode = nodeIndex;
-00031     float minDist = std::numeric_limits<float>().max();
-00032 
-00033     while (!Nv::Blast::isInvalidIndex(nodeIndex))
-00034     {
-00035         const uint32_t startIndex = adjacencyPartition[nodeIndex];
-00036         const uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];
+

sdk/common/NvBlastGeometry.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTGEOMETRY_H
+00030 #define NVBLASTGEOMETRY_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 #include "NvBlastMath.h"
+00034 #include "NvBlastAssert.h"
+00035 
+00036 #include <limits>
 00037 
-00038         for (uint32_t adjacentIndex = startIndex; adjacentIndex < stopIndex; adjacentIndex++)
-00039         {
-00040             const uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];
-00041             if (nodeIndex < neighbourIndex)
-00042             {
-00043                 const uint32_t bondIndex = adjacentBondIndices[adjacentIndex];
-00044                 if (bondHealths[bondIndex] > 0.0f)
-00045                 {
-00046                     const NvBlastBond& bond = bonds[bondIndex];
-00047 
-00048                     const float* centroid = bond.centroid;
-00049                     float d[3]; VecMath::sub(point, centroid, d);
-00050                     float dist = VecMath::dot(d, d);
-00051 
-00052                     if (dist < minDist)
-00053                     {
-00054                         minDist = dist;
-00055                         float s = VecMath::dot(d, bond.normal);
-00056                         closestNode = s < 0 ? nodeIndex : neighbourIndex;
-00057                     }
-00058                 }
-00059             }
-00060         }
-00061         nodeIndex = familyGraphNodeIndexLinks[nodeIndex];
-00062     }
-00063 
-00064     return closestNode;
-00065 }
-00066 
-00067 
-00068 NV_FORCE_INLINE uint32_t findNodeByPosition(const float point[4],
-00069     const uint32_t graphNodesCount, const uint32_t* graphNodeIndices,
-00070     const uint32_t* adjacencyPartition, const uint32_t* adjacentNodeIndices, const uint32_t* adjacentBondIndices,
-00071     const NvBlastBond* bonds, const float* bondHealths)
-00072 {
-00073     uint32_t closestNode = graphNodesCount > 2 ? invalidIndex<uint32_t>() : graphNodeIndices[0];
+00038 
+00039 namespace Nv {
+00040 namespace Blast{
+00041 
+00042 
+00062 NV_FORCE_INLINE uint32_t findClosestNode(const float point[4], 
+00063     const uint32_t firstGraphNodeIndex, const uint32_t* familyGraphNodeIndexLinks,
+00064     const uint32_t* adjacencyPartition, const uint32_t* adjacentNodeIndices, const uint32_t* adjacentBondIndices,
+00065     const NvBlastBond* assetBonds, const float* bondHealths,
+00066     const NvBlastChunk* assetChunks, const float* supportChunkHealths, const uint32_t* chunkIndices)
+00067 {
+00068     // firstGraphNodeIndex could still be the world chunk, however
+00069     // there should be no way a single-node actor that is just the world chunk exists.
+00070     uint32_t nodeIndex = firstGraphNodeIndex;
+00071     // Since there should always be a regular chunk in the graph, it is possible to initialize closestNode
+00072     // as world chunk index but it would always evaluate to some meaningful node index eventually.
+00073     uint32_t closestNode = nodeIndex;
 00074     float minDist = std::numeric_limits<float>().max();
 00075 
-00076     for (uint32_t i = 0; i < graphNodesCount; i++)
-00077     {
-00078         const uint32_t nodeIndex = graphNodeIndices[i];
-00079         const uint32_t startIndex = adjacencyPartition[nodeIndex];
-00080         const uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];
-00081 
-00082         for (uint32_t adjacentIndex = startIndex; adjacentIndex < stopIndex; adjacentIndex++)
-00083         {
-00084             const uint32_t bondIndex = adjacentBondIndices[adjacentIndex];
-00085             if (bondHealths[bondIndex] > 0.0f)
-00086             {
-00087                 const uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];
-00088                 if (nodeIndex < neighbourIndex)
-00089                 {
-00090                     const NvBlastBond& bond = bonds[bondIndex];
-00091 
-00092                     const float* centroid = bond.centroid;
-00093                     float d[3]; VecMath::sub(point, centroid, d);
-00094                     float dist = VecMath::dot(d, d);
-00095 
-00096                     if (dist < minDist)
-00097                     {
-00098                         minDist = dist;
-00099                         float s = VecMath::dot(d, bond.normal);
-00100                         closestNode = s < 0 ? nodeIndex : neighbourIndex;
-00101                     }
-00102                 }
-00103             }
-00104         }
-00105     }
-00106     return closestNode;
-00107 }
+00076     // find the closest healthy chunk in the graph by its centroid to point distance
+00077     while (!Nv::Blast::isInvalidIndex(nodeIndex))
+00078     {
+00079         if (supportChunkHealths[nodeIndex] > 0.0f)
+00080         {
+00081             uint32_t chunkIndex = chunkIndices[nodeIndex];
+00082             if (!isInvalidIndex(chunkIndex)) // Invalid if this is the world chunk
+00083             {
+00084                 const NvBlastChunk& chunk = assetChunks[chunkIndex];
+00085                 const float* centroid = chunk.centroid;
+00086 
+00087                 float d[3]; VecMath::sub(point, centroid, d);
+00088                 float dist = VecMath::dot(d, d);
+00089 
+00090                 if (dist < minDist)
+00091                 {
+00092                     minDist = dist;
+00093                     closestNode = nodeIndex;
+00094                 }
+00095             }
+00096         }
+00097         nodeIndex = familyGraphNodeIndexLinks[nodeIndex];
+00098     }
+00099 
+00100     // as long as the world chunk is not input as a single-node graph actor
+00101     NVBLAST_ASSERT(!isInvalidIndex(chunkIndices[closestNode]));
+00102 
+00103     bool iterateOnBonds = true;
+00104     if (iterateOnBonds)
+00105     {
+00106         // improve geometric accuracy by looking on which side of the closest bond the point lies
+00107         // expects bond normals to point from the smaller to the larger node index
 00108 
-00109 
-00110 NV_FORCE_INLINE uint32_t findNodeByPosition(const float point[4],
-00111     const uint32_t graphNodesCount, const uint32_t* graphNodeIndices,
-00112     const NvBlastSupportGraph& graph,
-00113     const NvBlastBond* bonds, const float* bondHealths)
-00114 {
-00115     return findNodeByPosition(point, graphNodesCount, graphNodeIndices, graph.adjacencyPartition, graph.adjacentNodeIndices, graph.adjacentBondIndices, bonds, bondHealths);
-00116 }
-00117 
-00118 } // namespace Blast
-00119 } // namespace Nv
-00120 
-00121 
-00122 #endif // NVBLASTGEOMETRY_H
+00109         nodeIndex = closestNode;
+00110         minDist = std::numeric_limits<float>().max();
+00111 
+00112         const uint32_t startIndex = adjacencyPartition[nodeIndex];
+00113         const uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];
+00114 
+00115         for (uint32_t adjacentIndex = startIndex; adjacentIndex < stopIndex; adjacentIndex++)
+00116         {
+00117             const uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];
+00118             const uint32_t neighbourChunk = chunkIndices[neighbourIndex];
+00119             if (!isInvalidIndex(neighbourChunk)) // Invalid if neighbor is the world chunk
+00120             {
+00121                 const uint32_t bondIndex = adjacentBondIndices[adjacentIndex];
+00122                 // do not follow broken bonds, since it means that neighbor is not actually connected in the graph
+00123                 if (bondHealths[bondIndex] > 0.0f && supportChunkHealths[neighbourIndex] > 0.0f)
+00124                 {
+00125                     const NvBlastBond& bond = assetBonds[bondIndex];
+00126 
+00127                     const float* centroid = bond.centroid;
+00128                     float d[3]; VecMath::sub(point, centroid, d);
+00129                     float dist = VecMath::dot(d, d);
+00130 
+00131                     if (dist < minDist)
+00132                     {
+00133                         minDist = dist;
+00134                         float s = VecMath::dot(d, bond.normal);
+00135                         if (nodeIndex < neighbourIndex)
+00136                         {
+00137                             closestNode = s < 0.0f ? nodeIndex : neighbourIndex;
+00138                         }
+00139                         else
+00140                         {
+00141                             closestNode = s < 0.0f ? neighbourIndex : nodeIndex;
+00142                         }
+00143                     }
+00144                 }
+00145             }
+00146         }
+00147     }
+00148 
+00149     return closestNode;
+00150 }
+00151 
+00152 
+00171 NV_FORCE_INLINE uint32_t findClosestNode(const float point[4],
+00172     const uint32_t firstGraphNodeIndex, const uint32_t* familyGraphNodeIndexLinks,
+00173     const uint32_t* adjacencyPartition, const uint32_t* adjacentNodeIndices, const uint32_t* adjacentBondIndices,
+00174     const NvBlastBond* bonds, const float* bondHealths, const uint32_t* chunkIndices)
+00175 {
+00176     // firstGraphNodeIndex could still be the world chunk, however
+00177     // there should be no way a single-node actor that is just the world chunk exists.
+00178     uint32_t nodeIndex = firstGraphNodeIndex;
+00179     // Since there should always be a regular chunk in the graph, it is possible to initialize closestNode
+00180     // as world chunk index but it would always evaluate to some meaningful node index eventually.
+00181     uint32_t closestNode = nodeIndex;
+00182     float minDist = std::numeric_limits<float>().max();
+00183 
+00184     while (!Nv::Blast::isInvalidIndex(nodeIndex))
+00185     {
+00186         const uint32_t startIndex = adjacencyPartition[nodeIndex];
+00187         const uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];
+00188 
+00189         for (uint32_t adjacentIndex = startIndex; adjacentIndex < stopIndex; adjacentIndex++)
+00190         {
+00191             const uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];
+00192             if (nodeIndex < neighbourIndex)
+00193             {
+00194                 const uint32_t bondIndex = adjacentBondIndices[adjacentIndex];
+00195                 if (bondHealths[bondIndex] > 0.0f)
+00196                 {
+00197                     const NvBlastBond& bond = bonds[bondIndex];
+00198 
+00199                     const float* centroid = bond.centroid;
+00200                     float d[3]; VecMath::sub(point, centroid, d);
+00201                     float dist = VecMath::dot(d, d);
+00202 
+00203                     if (dist < minDist)
+00204                     {
+00205                         minDist = dist;
+00206                         // if any of the nodes is the world chunk, use the valid one instead
+00207                         if (isInvalidIndex(chunkIndices[neighbourIndex]))
+00208                         {
+00209                             closestNode = nodeIndex;
+00210                         }
+00211                         else if (isInvalidIndex(chunkIndices[nodeIndex]))
+00212                         {
+00213                             closestNode = neighbourIndex;
+00214                         }
+00215                         else
+00216                         {
+00217                             float s = VecMath::dot(d, bond.normal);
+00218                             closestNode = s < 0 ? nodeIndex : neighbourIndex;
+00219                         }
+00220                     }
+00221                 }
+00222             }
+00223         }
+00224         nodeIndex = familyGraphNodeIndexLinks[nodeIndex];
+00225     }
+00226 
+00227     // as long as the world chunk is not input as a single-node graph actor
+00228     NVBLAST_ASSERT(!isInvalidIndex(chunkIndices[closestNode]));
+00229     return closestNode;
+00230 }
+00231 
+00232 
+00233 } // namespace Blast
+00234 } // namespace Nv
+00235 
+00236 
+00237 #endif // NVBLASTGEOMETRY_H
 
+ + + + diff --git a/docs/api_docs/files/_nv_blast_globals_8h.html b/docs/api_docs/files/_nv_blast_globals_8h.html new file mode 100644 index 0000000..6a901eb --- /dev/null +++ b/docs/api_docs/files/_nv_blast_globals_8h.html @@ -0,0 +1,559 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/globals/include/NvBlastGlobals.h File Reference + + + + + + + +
+

sdk/globals/include/NvBlastGlobals.h File Reference

#include <new>
+#include "NvBlastTypes.h"
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

class  Nv::Blast::AllocatorCallback
 Abstract base class for an application defined memory allocator that can be used by toolkit (Tk) or any extension (Ext). More...
class  Nv::Blast::ErrorCallback
 User defined interface class. Used by the library to emit debug information. More...
struct  Nv::Blast::ErrorCode
 Error codes. More...

Namespaces

namespace  Nv
namespace  Nv::Blast

Defines

#define NVBLAST_ALLOC(_size)   NvBlastGlobalGetAllocatorCallback()->allocate(_size, nullptr, __FILE__, __LINE__)
#define NVBLAST_ALLOC_NAMED(_size, _name)   NvBlastGlobalGetAllocatorCallback()->allocate(_size, _name, __FILE__, __LINE__)
#define NVBLAST_CHECK(_code, _expr, _msg, _onFail)
#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail)   NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail)
#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail)   NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail)
#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail)   NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail)
#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail)   NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail)
#define NVBLAST_DELETE(obj, T)
#define NVBLAST_FOURCC(_a, _b, _c, _d)   ( (uint32_t)(_a) | (uint32_t)(_b)<<8 | (uint32_t)(_c)<<16 | (uint32_t)(_d)<<24 )
#define NVBLAST_FREE(_mem)   NvBlastGlobalGetAllocatorCallback()->deallocate(_mem)
#define NVBLAST_LOG(_code, _msg)   NvBlastGlobalGetErrorCallback()->reportError(_code, _msg, __FILE__, __LINE__)
#define NVBLAST_LOG_DEBUG(_msg)   NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg)
#define NVBLAST_LOG_ERROR(_msg)   NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg)
#define NVBLAST_LOG_INFO(_msg)   NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg)
#define NVBLAST_LOG_WARNING(_msg)   NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg)
#define NVBLAST_NEW(T)   new (NvBlastGlobalGetAllocatorCallback()->allocate(sizeof(T), #T, __FILE__, __LINE__)) T

Functions

NV_INLINE void Nv::Blast::logLL (int type, const char *msg, const char *file, int line)
Nv::Blast::AllocatorCallbackNvBlastGlobalGetAllocatorCallback ()
Nv::Blast::ErrorCallbackNvBlastGlobalGetErrorCallback ()
void NvBlastGlobalSetAllocatorCallback (Nv::Blast::AllocatorCallback *allocatorCallback)
void NvBlastGlobalSetErrorCallback (Nv::Blast::ErrorCallback *errorCallback)
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define NVBLAST_ALLOC (_size   )    NvBlastGlobalGetAllocatorCallback()->allocate(_size, nullptr, __FILE__, __LINE__)
+
+
+ +

+Alloc/Free macros that use global AllocatorCallback. Thus allocated memory is 16-byte aligned. +

+

+ +

+
+ + + + + + + + + + + + +
#define NVBLAST_ALLOC_NAMED (_size,
_name   )    NvBlastGlobalGetAllocatorCallback()->allocate(_size, _name, __FILE__, __LINE__)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
#define NVBLAST_CHECK (_code,
_expr,
_msg,
_onFail   ) 
+
+
+ +

+Value:

{                                                                                                                   \
+        if(!(_expr))                                                                                                    \
+        {                                                                                                               \
+            NVBLAST_LOG(_code, _msg);                                                                                   \
+            { _onFail; };                                                                                               \
+        }                                                                                                               \
+    }
+
Check macros that use global AllocatorCallback. The idea is that you pass an expression to check, if it fails it logs and calls '_onFail' code you passed. +
+

+ +

+
+ + + + + + + + + + + + + + + +
#define NVBLAST_CHECK_DEBUG (_expr,
_msg,
_onFail   )    NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + +
#define NVBLAST_CHECK_ERROR (_expr,
_msg,
_onFail   )    NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + +
#define NVBLAST_CHECK_INFO (_expr,
_msg,
_onFail   )    NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + +
#define NVBLAST_CHECK_WARNING (_expr,
_msg,
_onFail   )    NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + +
#define NVBLAST_DELETE (obj,
 ) 
+
+
+ +

+Value:

Respective delete to NVBLAST_NEW Example: NVBLAST_DELETE(foo, Foo, context); +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
#define NVBLAST_FOURCC (_a,
_b,
_c,
_d   )    ( (uint32_t)(_a) | (uint32_t)(_b)<<8 | (uint32_t)(_c)<<16 | (uint32_t)(_d)<<24 )
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
#define NVBLAST_FREE (_mem   )    NvBlastGlobalGetAllocatorCallback()->deallocate(_mem)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + +
#define NVBLAST_LOG (_code,
_msg   )    NvBlastGlobalGetErrorCallback()->reportError(_code, _msg, __FILE__, __LINE__)
+
+
+ +

+Logging macros that use global AllocatorCallback. +

+

+ +

+
+ + + + + + + + + +
#define NVBLAST_LOG_DEBUG (_msg   )    NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
#define NVBLAST_LOG_ERROR (_msg   )    NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
#define NVBLAST_LOG_INFO (_msg   )    NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
#define NVBLAST_LOG_WARNING (_msg   )    NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
#define NVBLAST_NEW (  )    new (NvBlastGlobalGetAllocatorCallback()->allocate(sizeof(T), #T, __FILE__, __LINE__)) T
+
+
+ +

+Placement new with ExtContext allocation. Example: Foo* foo = NVBLAST_NEW(Foo, context) (params); +

+

+


Function Documentation

+ +
+
+ + + + + + + + +
Nv::Blast::AllocatorCallback* NvBlastGlobalGetAllocatorCallback (  ) 
+
+
+ +

+Retrieve a pointer to the global AllocatorCallback. Default implementation with std allocator is used if user didn't provide it's own. It always exist, 'nullptr' will never be returned.

+

Returns:
the pointer to the global AllocatorCallback.
+ +
+

+ +

+
+ + + + + + + + +
Nv::Blast::ErrorCallback* NvBlastGlobalGetErrorCallback (  ) 
+
+
+ +

+Retrieve a pointer to the global ErrorCallback. Default implementation which writes messages to stdout is used if user didn't provide it's own. It always exist, 'nullptr' will never be returned.

+

Returns:
the pointer to the global ErrorCallback.
+ +
+

+ +

+
+ + + + + + + + + +
void NvBlastGlobalSetAllocatorCallback (Nv::Blast::AllocatorCallback allocatorCallback  ) 
+
+
+ +

+Set global AllocatorCallback. If 'nullptr' is passed the default AllocatorCallback with std allocator is set. +

+

+ +

+
+ + + + + + + + + +
void NvBlastGlobalSetErrorCallback (Nv::Blast::ErrorCallback errorCallback  ) 
+
+
+ +

+Set global ErrorCallback. If 'nullptr' is passed the default ErrorCallback that writes messages to stdout is set. +

+

+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_hash_map_8h-source.html b/docs/api_docs/files/_nv_blast_hash_map_8h-source.html new file mode 100644 index 0000000..edae4e0 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_hash_map_8h-source.html @@ -0,0 +1,80 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastHashMap.h Source File + + + + + + + +

sdk/common/NvBlastHashMap.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTHASHMAP_H
+00030 #define NVBLASTHASHMAP_H
+00031 
+00032 
+00033 #include "NvBlastAllocator.h"
+00034 #include "PsHashMap.h"
+00035 
+00036 
+00037 namespace Nv
+00038 {
+00039 namespace Blast
+00040 {
+00041 
+00045 template <class Key, class Value, class HashFn = physx::shdfnd::Hash<Key>>
+00046 struct HashMap
+00047 {
+00048     typedef physx::shdfnd::HashMap<Key, Value, HashFn, Allocator> type;
+00049 };
+00050 
+00051 } // namespace Blast
+00052 } // namespace Nv
+00053 
+00054 
+00055 #endif // #ifndef NVBLASTHASHMAP_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_hash_map_8h.html b/docs/api_docs/files/_nv_blast_hash_map_8h.html new file mode 100644 index 0000000..c54962c --- /dev/null +++ b/docs/api_docs/files/_nv_blast_hash_map_8h.html @@ -0,0 +1,44 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastHashMap.h File Reference + + + + + + + +
+

sdk/common/NvBlastHashMap.h File Reference

#include "NvBlastAllocator.h"
+#include "PsHashMap.h"
+ +

+Go to the source code of this file. + + + + + + + + + +

Classes

struct  Nv::Blast::HashMap< Key, Value, HashFn >

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_hash_set_8h-source.html b/docs/api_docs/files/_nv_blast_hash_set_8h-source.html new file mode 100644 index 0000000..343acc4 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_hash_set_8h-source.html @@ -0,0 +1,79 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastHashSet.h Source File + + + + + + + +

sdk/common/NvBlastHashSet.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTHASHSET_H
+00030 #define NVBLASTHASHSET_H
+00031 
+00032 
+00033 #include "NvBlastAllocator.h"
+00034 #include "PsHashSet.h"
+00035 
+00036 namespace Nv
+00037 {
+00038 namespace Blast
+00039 {
+00040 
+00044 template <class Key, class HashFn = physx::shdfnd::Hash<Key>>
+00045 struct HashSet
+00046 {
+00047     typedef physx::shdfnd::HashSet<Key, HashFn, Allocator> type;
+00048 };
+00049 
+00050 } // namespace Blast
+00051 } // namespace Nv
+00052 
+00053 
+00054 #endif // #ifndef NVBLASTHASHSET_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_hash_set_8h.html b/docs/api_docs/files/_nv_blast_hash_set_8h.html new file mode 100644 index 0000000..f16cbb9 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_hash_set_8h.html @@ -0,0 +1,44 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastHashSet.h File Reference + + + + + + + +
+

sdk/common/NvBlastHashSet.h File Reference

#include "NvBlastAllocator.h"
+#include "PsHashSet.h"
+ +

+Go to the source code of this file. + + + + + + + + + +

Classes

struct  Nv::Blast::HashSet< Key, HashFn >

Namespaces

namespace  Nv
namespace  Nv::Blast
+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_include_windows_8h-source.html b/docs/api_docs/files/_nv_blast_include_windows_8h-source.html index e7bf29e..abdbf78 100644 --- a/docs/api_docs/files/_nv_blast_include_windows_8h-source.html +++ b/docs/api_docs/files/_nv_blast_include_windows_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/common/NvBlastIncludeWindows.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastIncludeWindows.h Source File @@ -24,91 +24,104 @@ 00003 // 00004 // Notice 00005 // NVIDIA Corporation and its licensors retain all intellectual property and -00006 /* -00007 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. -00008 * -00009 * NVIDIA CORPORATION and its licensors retain all intellectual property -00010 * and proprietary rights in and to this software, related documentation -00011 * and any modifications thereto. Any use, reproduction, disclosure or -00012 * distribution of this software and related documentation without an express -00013 * license agreement from NVIDIA CORPORATION is strictly prohibited. -00014 */ -00015 -00016 #ifndef NVBLASTINCLUDEWINDOWS_H -00017 #define NVBLASTINCLUDEWINDOWS_H -00018 -00019 #ifndef _WINDOWS_ // windows already included if this is defined -00020 -00021 #include "NvBlastPreprocessor.h" -00022 -00023 #ifndef _WIN32 -00024 #error "This file should only be included by Windows builds!!" -00025 #endif -00026 -00027 // We only support >= Windows XP, and we need this for critical section and -00028 #if !NV_WINRT -00029 #define _WIN32_WINNT 0x0501 -00030 #else -00031 #define _WIN32_WINNT 0x0602 -00032 #endif +00006 // proprietary rights in and to this software and related documentation and +00007 // any modifications thereto. Any use, reproduction, disclosure, or +00008 // distribution of this software and related documentation without an express +00009 // license agreement from NVIDIA Corporation is strictly prohibited. +00010 // +00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +00015 // +00016 // Information and code furnished is believed to be accurate and reliable. +00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +00018 // information or for any infringement of patents or other rights of third parties that may +00019 // result from its use. No license is granted by implication or otherwise under any patent +00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice. +00021 // This code supersedes and replaces all information previously supplied. +00022 // NVIDIA Corporation products are not authorized for use as critical +00023 // components in life support devices or systems without express written approval of +00024 // NVIDIA Corporation. +00025 // +00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved. +00027 +00028 +00029 #ifndef NVBLASTINCLUDEWINDOWS_H +00030 #define NVBLASTINCLUDEWINDOWS_H +00031 +00032 #ifndef _WINDOWS_ // windows already included if this is defined 00033 -00034 // turn off as much as we can for windows. All we really need is the thread functions(critical sections/Interlocked* -00035 // etc) -00036 #define NOGDICAPMASKS -00037 #define NOVIRTUALKEYCODES -00038 #define NOWINMESSAGES -00039 #define NOWINSTYLES -00040 #define NOSYSMETRICS -00041 #define NOMENUS -00042 #define NOICONS -00043 #define NOKEYSTATES -00044 #define NOSYSCOMMANDS -00045 #define NORASTEROPS -00046 #define NOSHOWWINDOW -00047 #define NOATOM -00048 #define NOCLIPBOARD -00049 #define NOCOLOR -00050 #define NOCTLMGR -00051 #define NODRAWTEXT -00052 #define NOGDI -00053 #define NOMB -00054 #define NOMEMMGR -00055 #define NOMETAFILE -00056 #define NOMINMAX -00057 #define NOOPENFILE -00058 #define NOSCROLL -00059 #define NOSERVICE -00060 #define NOSOUND -00061 #define NOTEXTMETRIC -00062 #define NOWH -00063 #define NOWINOFFSETS -00064 #define NOCOMM -00065 #define NOKANJI -00066 #define NOHELP -00067 #define NOPROFILER -00068 #define NODEFERWINDOWPOS -00069 #define NOMCX -00070 #ifndef WIN32_LEAN_AND_MEAN -00071 #define WIN32_LEAN_AND_MEAN -00072 #endif -00073 #if !NV_WINRT -00074 #define NOUSER -00075 #define NONLS -00076 #define NOMSG -00077 #endif -00078 -00079 #pragma warning(push) -00080 #pragma warning(disable : 4668) //'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives' -00081 #include <windows.h> -00082 #pragma warning(pop) -00083 -00084 #if NV_SSE2 -00085 #include <xmmintrin.h> -00086 #endif -00087 -00088 #endif // #ifndef _WINDOWS_ -00089 -00090 #endif // #ifndef NVBLASTINCLUDEWINDOWS_H +00034 #include "NvBlastPreprocessor.h" +00035 +00036 #ifndef _WIN32 +00037 #error "This file should only be included by Windows builds!!" +00038 #endif +00039 +00040 // We only support >= Windows XP, and we need this for critical section and +00041 #if !NV_WINRT +00042 #define _WIN32_WINNT 0x0501 +00043 #else +00044 #define _WIN32_WINNT 0x0602 +00045 #endif +00046 +00047 // turn off as much as we can for windows. All we really need is the thread functions(critical sections/Interlocked* +00048 // etc) +00049 #define NOGDICAPMASKS +00050 #define NOVIRTUALKEYCODES +00051 #define NOWINMESSAGES +00052 #define NOWINSTYLES +00053 #define NOSYSMETRICS +00054 #define NOMENUS +00055 #define NOICONS +00056 #define NOKEYSTATES +00057 #define NOSYSCOMMANDS +00058 #define NORASTEROPS +00059 #define NOSHOWWINDOW +00060 #define NOATOM +00061 #define NOCLIPBOARD +00062 #define NOCOLOR +00063 #define NOCTLMGR +00064 #define NODRAWTEXT +00065 #define NOGDI +00066 #define NOMB +00067 #define NOMEMMGR +00068 #define NOMETAFILE +00069 #define NOMINMAX +00070 #define NOOPENFILE +00071 #define NOSCROLL +00072 #define NOSERVICE +00073 #define NOSOUND +00074 #define NOTEXTMETRIC +00075 #define NOWH +00076 #define NOWINOFFSETS +00077 #define NOCOMM +00078 #define NOKANJI +00079 #define NOHELP +00080 #define NOPROFILER +00081 #define NODEFERWINDOWPOS +00082 #define NOMCX +00083 #ifndef WIN32_LEAN_AND_MEAN +00084 #define WIN32_LEAN_AND_MEAN +00085 #endif +00086 #if !NV_WINRT +00087 #define NOUSER +00088 #define NONLS +00089 #define NOMSG +00090 #endif +00091 +00092 #pragma warning(push) +00093 #pragma warning(disable : 4668) //'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives' +00094 #include <windows.h> +00095 #pragma warning(pop) +00096 +00097 #if NV_SSE2 +00098 #include <xmmintrin.h> +00099 #endif +00100 +00101 #endif // #ifndef _WINDOWS_ +00102 +00103 #endif // #ifndef NVBLASTINCLUDEWINDOWS_H -

sdk/common/NvBlastIndexFns.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2008-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTINDEXFNS_H
-00012 #define NVBLASTINDEXFNS_H
-00013 
-00014 
-00015 #include "NvBlastTypes.h"
-00016 
-00017 #include <cstring>
-00018 
-00019 
-00020 namespace Nv
-00021 {
-00022 namespace Blast
-00023 {
-00024 
-00028 template<typename T>
-00029 NV_INLINE T invalidIndex()
-00030 {
-00031     return ~(T)0;
-00032 }
-00033 
+

sdk/common/NvBlastIndexFns.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTINDEXFNS_H
+00030 #define NVBLASTINDEXFNS_H
+00031 
+00032 
+00033 #include "NvBlastTypes.h"
 00034 
-00038 template<typename T>
-00039 NV_INLINE bool isInvalidIndex(T index)
-00040 {
-00041     return index == invalidIndex<T>();
-00042 }
-00043 
-00044 
-00077 template<typename T>
-00078 void createIndexStartLookup(T* lookup, T indexBase, T indexRange, T* indexSource, T indexCount, T indexByteStride)
-00079 {
-00080     ++indexBase;    // Ordering invalidIndex<T>() as lowest value
-00081     T indexPos = 0;
-00082     for (T i = 0; i <= indexRange; ++i)
-00083     {
-00084         for (; indexPos < indexCount; ++indexPos, indexSource = (T*)((uintptr_t)indexSource + indexByteStride))
-00085         {
-00086             if (*indexSource + 1 >= i + indexBase)  // +1 to order invalidIndex<T>() as lowest value
-00087             {
-00088                 lookup[i] = indexPos;
-00089                 break;
-00090             }
-00091         }
-00092         if (indexPos == indexCount)
-00093         {
-00094             lookup[i] = indexPos;
-00095         }
-00096     }
-00097     lookup[indexRange + 1] = indexCount;
-00098 }
-00099 
-00100 
-00109 template<typename T>
-00110 void invertMap(T* inverseMap, const T* map, const T size)
-00111 {
-00112     memset(inverseMap, invalidIndex<T>(), size*sizeof(T));
-00113 
-00114     for (T i = 0; i < size; i++)
-00115     {
-00116         if (!isInvalidIndex(map[i]))
-00117         {
-00118             inverseMap[map[i]] = i;
-00119         }
-00120     }
-00121 }
-00122 
-00123 } // end namespace Blast
-00124 } // end namespace Nv
-00125 
-00126 
-00127 #endif // #ifndef NVBLASTINDEXFNS_H
+00035 #include <cstring>
+00036 
+00037 
+00038 namespace Nv
+00039 {
+00040 namespace Blast
+00041 {
+00042 
+00046 template<typename T>
+00047 NV_INLINE T invalidIndex()
+00048 {
+00049     return ~(T)0;
+00050 }
+00051 
+00052 
+00056 template<typename T>
+00057 NV_INLINE bool isInvalidIndex(T index)
+00058 {
+00059     return index == invalidIndex<T>();
+00060 }
+00061 
+00062 
+00095 template<typename T>
+00096 void createIndexStartLookup(T* lookup, T indexBase, T indexRange, T* indexSource, T indexCount, T indexByteStride)
+00097 {
+00098     ++indexBase;    // Ordering invalidIndex<T>() as lowest value
+00099     T indexPos = 0;
+00100     for (T i = 0; i <= indexRange; ++i)
+00101     {
+00102         for (; indexPos < indexCount; ++indexPos, indexSource = (T*)((uintptr_t)indexSource + indexByteStride))
+00103         {
+00104             if (*indexSource + 1 >= i + indexBase)  // +1 to order invalidIndex<T>() as lowest value
+00105             {
+00106                 lookup[i] = indexPos;
+00107                 break;
+00108             }
+00109         }
+00110         if (indexPos == indexCount)
+00111         {
+00112             lookup[i] = indexPos;
+00113         }
+00114     }
+00115     lookup[indexRange + 1] = indexCount;
+00116 }
+00117 
+00118 
+00127 template<typename T>
+00128 void invertMap(T* inverseMap, const T* map, const T size)
+00129 {
+00130     memset(inverseMap, invalidIndex<T>(), size*sizeof(T));
+00131 
+00132     for (T i = 0; i < size; i++)
+00133     {
+00134         if (!isInvalidIndex(map[i]))
+00135         {
+00136             inverseMap[map[i]] = i;
+00137         }
+00138     }
+00139 }
+00140 
+00141 } // end namespace Blast
+00142 } // end namespace Nv
+00143 
+00144 
+00145 #endif // #ifndef NVBLASTINDEXFNS_H
 
-

sdk/common/NvBlastIteratorBase.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTITERATORBASE_H
-00012 #define NVBLASTITERATORBASE_H
-00013 
-00014 
-00015 #include "NvBlastIndexFns.h"
-00016 
-00017 namespace Nv
-00018 {
-00019 namespace Blast
-00020 {
-00021 
-00026 template<typename T>
-00027 class IteratorBase
-00028 {
-00029 public:
-00031     IteratorBase(T curr);
+

sdk/common/NvBlastIteratorBase.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTITERATORBASE_H
+00030 #define NVBLASTITERATORBASE_H
+00031 
 00032 
-00034     operator    bool() const;
-00035 
-00037     operator    T() const;
-00038 
-00039 protected:
-00040     T   m_curr;
-00041 };
-00042 
-00043 
-00045 
-00046 template<typename T>
-00047 NV_INLINE IteratorBase<T>::IteratorBase(T curr) : m_curr(curr)
-00048 {
-00049 }
+00033 #include "NvBlastIndexFns.h"
+00034 
+00035 namespace Nv
+00036 {
+00037 namespace Blast
+00038 {
+00039 
+00044 template<typename T>
+00045 class IteratorBase
+00046 {
+00047 public:
+00049     IteratorBase(T curr);
 00050 
-00051 
-00052 template<typename T>
-00053 NV_INLINE IteratorBase<T>::operator bool() const
-00054 {
-00055     return !isInvalidIndex<T>(m_curr);
-00056 }
-00057 
-00058 
-00059 template<typename T>
-00060 NV_INLINE IteratorBase<T>::operator T() const
-00061 {
-00062     return m_curr;
-00063 }
-00064 
-00065 
-00069 template<typename IndexType>
-00070 class LListIt : public IteratorBase<IndexType>
-00071 {
-00072 public:
-00073     LListIt(IndexType curr, IndexType* links);
-00074 
-00076     uint32_t    operator ++ ();
-00077 
-00078 protected:
-00079     IndexType*  m_links;
-00080 };
-00081 
+00052     operator    bool() const;
+00053 
+00055     operator    T() const;
+00056 
+00057 protected:
+00058     T   m_curr;
+00059 };
+00060 
+00061 
+00063 
+00064 template<typename T>
+00065 NV_INLINE IteratorBase<T>::IteratorBase(T curr) : m_curr(curr)
+00066 {
+00067 }
+00068 
+00069 
+00070 template<typename T>
+00071 NV_INLINE IteratorBase<T>::operator bool() const
+00072 {
+00073     return !isInvalidIndex<T>(m_curr);
+00074 }
+00075 
+00076 
+00077 template<typename T>
+00078 NV_INLINE IteratorBase<T>::operator T() const
+00079 {
+00080     return m_curr;
+00081 }
 00082 
-00084 
-00085 template<typename IndexType>
-00086 NV_INLINE LListIt<IndexType>::LListIt(IndexType curr, IndexType* links) : IteratorBase<IndexType>(curr), m_links(links)
-00087 {
-00088 }
-00089 
-00090 
-00091 template<typename IndexType>
-00092 NV_INLINE uint32_t LListIt<IndexType>::operator ++ ()
-00093 {
-00094     NVBLAST_ASSERT((bool)(*this));
-00095     return (this->m_curr = m_links[this->m_curr]);
-00096 }
-00097 
-00098 
-00102 template<typename IndexType>
-00103 class DListIt : public IteratorBase<IndexType>
-00104 {
-00105 public:
-00106     DListIt(IndexType curr, IndexDLink<IndexType>* links);
+00083 
+00087 template<typename IndexType>
+00088 class LListIt : public IteratorBase<IndexType>
+00089 {
+00090 public:
+00091     LListIt(IndexType curr, IndexType* links);
+00092 
+00094     uint32_t    operator ++ ();
+00095 
+00096 protected:
+00097     IndexType*  m_links;
+00098 };
+00099 
+00100 
+00102 
+00103 template<typename IndexType>
+00104 NV_INLINE LListIt<IndexType>::LListIt(IndexType curr, IndexType* links) : IteratorBase<IndexType>(curr), m_links(links)
+00105 {
+00106 }
 00107 
-00109     uint32_t    operator ++ ();
-00110 
-00111 protected:
-00112     IndexDLink<IndexType>*  m_links;
-00113 };
-00114 
+00108 
+00109 template<typename IndexType>
+00110 NV_INLINE uint32_t LListIt<IndexType>::operator ++ ()
+00111 {
+00112     NVBLAST_ASSERT((bool)(*this));
+00113     return (this->m_curr = m_links[this->m_curr]);
+00114 }
 00115 
-00117 
-00118 template<typename IndexType>
-00119 NV_INLINE DListIt<IndexType>::DListIt(IndexType curr, IndexDLink<IndexType>* links) : IteratorBase<IndexType>(curr), m_links(links)
-00120 {
-00121 }
-00122 
-00123 
-00124 template<typename IndexType>
-00125 NV_INLINE uint32_t DListIt<IndexType>::operator ++ ()
-00126 {
-00127     NVBLAST_ASSERT((bool)(*this));
-00128     return (this->m_curr = m_links[this->m_curr].m_adj[1]);
-00129 }
-00130 
-00131 } // end namespace Blast
-00132 } // end namespace Nv
+00116 
+00120 template<typename IndexType>
+00121 class DListIt : public IteratorBase<IndexType>
+00122 {
+00123 public:
+00124     DListIt(IndexType curr, IndexDLink<IndexType>* links);
+00125 
+00127     uint32_t    operator ++ ();
+00128 
+00129 protected:
+00130     IndexDLink<IndexType>*  m_links;
+00131 };
+00132 
 00133 
-00134 
-00135 #endif // #ifndef NVBLASTITERATORBASE_H
+00135 
+00136 template<typename IndexType>
+00137 NV_INLINE DListIt<IndexType>::DListIt(IndexType curr, IndexDLink<IndexType>* links) : IteratorBase<IndexType>(curr), m_links(links)
+00138 {
+00139 }
+00140 
+00141 
+00142 template<typename IndexType>
+00143 NV_INLINE uint32_t DListIt<IndexType>::operator ++ ()
+00144 {
+00145     NVBLAST_ASSERT((bool)(*this));
+00146     return (this->m_curr = m_links[this->m_curr].m_adj[1]);
+00147 }
+00148 
+00149 } // end namespace Blast
+00150 } // end namespace Nv
+00151 
+00152 
+00153 #endif // #ifndef NVBLASTITERATORBASE_H
 
-

sdk/common/NvBlastMath.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTMATH_H
-00012 #define NVBLASTMATH_H
-00013 
-00014 #include <math.h>
-00015 
-00016 namespace Nv
-00017 {
-00018 namespace Blast
-00019 {
-00020 
-00021 namespace VecMath
-00022 {
-00023 
-00024 
-00025 NV_INLINE void div(float a[3], float divisor)
-00026 {
-00027     for (int i = 0; i < 3; i++)
-00028         a[i] /= divisor;
-00029 }
-00030 
-00031 NV_INLINE void mul(float a[3], float multiplier)
-00032 {
-00033     for (int i = 0; i < 3; i++)
-00034         a[i] *= multiplier;
-00035 }
-00036 
-00037 NV_INLINE void add(const float a[3], float b[3])
-00038 {
-00039     for (int i = 0; i < 3; i++)
-00040         b[i] = a[i] + b[i];
-00041 }
-00042     
-00043 NV_INLINE void add(const float a[3], const float b[3], float r[3])
+

sdk/common/NvBlastMath.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTMATH_H
+00030 #define NVBLASTMATH_H
+00031 
+00032 #include <math.h>
+00033 
+00034 namespace Nv
+00035 {
+00036 namespace Blast
+00037 {
+00038 
+00039 namespace VecMath
+00040 {
+00041 
+00042 
+00043 NV_INLINE void div(float a[3], float divisor)
 00044 {
 00045     for (int i = 0; i < 3; i++)
-00046         r[i] = a[i] + b[i];
+00046         a[i] /= divisor;
 00047 }
 00048 
-00049 NV_INLINE void sub(const float a[3], const float b[3], float r[3])
+00049 NV_INLINE void mul(float a[3], float multiplier)
 00050 {
 00051     for (int i = 0; i < 3; i++)
-00052         r[i] = a[i] - b[i];
+00052         a[i] *= multiplier;
 00053 }
 00054 
-00055 NV_INLINE float dot(const float a[3], const float b[3])
+00055 NV_INLINE void add(const float a[3], float b[3])
 00056 {
-00057     float r = 0;
-00058     for (int i = 0; i < 3; i++)
-00059         r += a[i] * b[i];
-00060     return r;
-00061 }
-00062 
-00063 NV_INLINE float normal(const float a[3], float r[3])
-00064 {
-00065     float length = sqrtf(dot(a, a));
-00066     for (int i = 0; i < 3; i++)
-00067         r[i] = a[i] / length;
-00068 
-00069     return length;
-00070 }
-00071 
+00057     for (int i = 0; i < 3; i++)
+00058         b[i] = a[i] + b[i];
+00059 }
+00060     
+00061 NV_INLINE void add(const float a[3], const float b[3], float r[3])
+00062 {
+00063     for (int i = 0; i < 3; i++)
+00064         r[i] = a[i] + b[i];
+00065 }
+00066 
+00067 NV_INLINE void sub(const float a[3], const float b[3], float r[3])
+00068 {
+00069     for (int i = 0; i < 3; i++)
+00070         r[i] = a[i] - b[i];
+00071 }
 00072 
-00073 } // namespace VecMath
-00074 
-00075 } // namespace Blast
-00076 } // namespace Nv
-00077 
-00078 
-00079 #endif // #ifndef NVBLASTMATH_H
+00073 NV_INLINE float dot(const float a[3], const float b[3])
+00074 {
+00075     float r = 0;
+00076     for (int i = 0; i < 3; i++)
+00077         r += a[i] * b[i];
+00078     return r;
+00079 }
+00080 
+00081 NV_INLINE float length(const float a[3])
+00082 {
+00083     return sqrtf(dot(a, a));
+00084 }
+00085 
+00086 NV_INLINE float dist(const float a[3], const float b[3])
+00087 {
+00088     float v[3];
+00089     sub(a, b, v);
+00090     return length(v);
+00091 }
+00092 
+00093 NV_INLINE float normal(const float a[3], float r[3])
+00094 {
+00095     float d = length(a);
+00096     for (int i = 0; i < 3; i++)
+00097         r[i] = a[i] / d;
+00098 
+00099     return d;
+00100 }
+00101 
+00102 
+00103 } // namespace VecMath
+00104 
+00105 } // namespace Blast
+00106 } // namespace Nv
+00107 
+00108 
+00109 #endif // #ifndef NVBLASTMATH_H
 
-

sdk/common/NvBlastMemory.h

Go to the documentation of this file.
00001 /*
-00002  * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003  *
-00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005  * and proprietary rights in and to this software, related documentation
-00006  * and any modifications thereto.  Any use, reproduction, disclosure or
-00007  * distribution of this software and related documentation without an express
-00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009  */
-00010 
-00011 #ifndef NVBLASTMEMORY_H
-00012 #define NVBLASTMEMORY_H
-00013 
-00014 #include <math.h>
-00015 
-00016 namespace Nv
-00017 {
-00018 namespace Blast
-00019 {
-00020 
-00021 
-00027 template<typename T>
-00028 NV_INLINE T align16(T value)
-00029 {
-00030     return (value + 0xF)&~(T)0xF;
-00031 }
-00032 
+

sdk/common/NvBlastMemory.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTMEMORY_H
+00030 #define NVBLASTMEMORY_H
+00031 
+00032 #include <math.h>
 00033 
-00036 template <typename T>
-00037 NV_INLINE T pointerOffset(void* p, ptrdiff_t offset)
-00038 {
-00039     return reinterpret_cast<T>(reinterpret_cast<char*>(p)+offset);
-00040 }
-00041 
-00042 template <typename T>
-00043 NV_INLINE T pointerOffset(const void* p, ptrdiff_t offset)
-00044 {
-00045     return reinterpret_cast<T>(reinterpret_cast<const char*>(p)+offset);
-00046 }
-00047 
-00048 NV_INLINE const void* pointerOffset(const void* p, ptrdiff_t offset)
-00049 {
-00050     return pointerOffset<const void*>(p, offset);
-00051 }
-00052 
-00053 NV_INLINE void* pointerOffset(void* p, ptrdiff_t offset)
-00054 {
-00055     return pointerOffset<void*>(p, offset);
-00056 }
-00057 
-00058 } // namespace Blast
-00059 } // namespace Nv
-00060 
-00061 
-00063 #define NvBlastBlockData(_dataType, _name, _accessor) \
-00064 _dataType* _accessor() const \
-00065 { \
-00066     return (_dataType*)((uintptr_t)this + _name); \
-00067 } \
-00068 uint32_t _name
-00069 
+00034 namespace Nv
+00035 {
+00036 namespace Blast
+00037 {
+00038 
+00039 
+00045 template<typename T>
+00046 NV_INLINE T align16(T value)
+00047 {
+00048     return (value + 0xF)&~(T)0xF;
+00049 }
+00050 
+00051 
+00054 template <typename T>
+00055 NV_INLINE T pointerOffset(void* p, ptrdiff_t offset)
+00056 {
+00057     return reinterpret_cast<T>(reinterpret_cast<char*>(p)+offset);
+00058 }
+00059 
+00060 template <typename T>
+00061 NV_INLINE T pointerOffset(const void* p, ptrdiff_t offset)
+00062 {
+00063     return reinterpret_cast<T>(reinterpret_cast<const char*>(p)+offset);
+00064 }
+00065 
+00066 NV_INLINE const void* pointerOffset(const void* p, ptrdiff_t offset)
+00067 {
+00068     return pointerOffset<const void*>(p, offset);
+00069 }
 00070 
-00072 #define NvBlastBlockArrayData(_dataType, _name, _accessor, _sizeExpr) \
-00073 _dataType* _accessor() const \
-00074 { \
-00075     return (_dataType*)((uintptr_t)this + _name); \
-00076 } \
-00077 uint32_t _accessor##ArraySize() const \
-00078 { \
-00079     return _sizeExpr; \
-00080 } \
-00081 uint32_t _name
-00082 
-00083 
-00087 #define NvBlastCreateOffsetStart(_baseOffset) \
-00088 size_t _lastOffset = _baseOffset; \
-00089 size_t _lastSize = 0
-00090 
-00092 #define NvBlastCreateOffsetAlign16(_name, _size) \
-00093 _name = align16(_lastOffset + _lastSize); \
-00094 _lastOffset = _name; \
-00095 _lastSize = _size
-00096 
-00098 #define NvBlastCreateOffsetEndAlign16() \
-00099 align16(_lastOffset + _lastSize)
+00071 NV_INLINE void* pointerOffset(void* p, ptrdiff_t offset)
+00072 {
+00073     return pointerOffset<void*>(p, offset);
+00074 }
+00075 
+00076 } // namespace Blast
+00077 } // namespace Nv
+00078 
+00079 
+00081 #define NvBlastBlockData(_dataType, _name, _accessor) \
+00082 _dataType* _accessor() const \
+00083 { \
+00084     return (_dataType*)((uintptr_t)this + _name); \
+00085 } \
+00086 uint32_t _name
+00087 
+00088 
+00090 #define NvBlastBlockArrayData(_dataType, _name, _accessor, _sizeExpr) \
+00091 _dataType* _accessor() const \
+00092 { \
+00093     return (_dataType*)((uintptr_t)this + _name); \
+00094 } \
+00095 uint32_t _accessor##ArraySize() const \
+00096 { \
+00097     return _sizeExpr; \
+00098 } \
+00099 uint32_t _name
 00100 
 00101 
-00103 #if NV_WINDOWS_FAMILY
-00104 #include <malloc.h>
-00105 #define NvBlastAlloca(x) _alloca(x)
-00106 #elif NV_LINUX || NV_ANDROID
-00107 #include <malloc.h>
-00108 #define NvBlastAlloca(x) alloca(x)
-00109 #elif NV_APPLE_FAMILY
-00110 #include <alloca.h>
-00111 #define NvBlastAlloca(x) alloca(x)
-00112 #elif NV_PS4
-00113 #include <memory.h>
-00114 #define NvBlastAlloca(x) alloca(x)
-00115 #elif NV_XBOXONE
-00116 #include <malloc.h>
-00117 #define NvBlastAlloca(x) alloca(x)
-00118 #endif
-00119 
-00120 #define NvBlastAllocaAligned16(x) (void*)(((uintptr_t)PxAlloca(x + 0xF) + 0xF) & ~(uintptr_t)0xF)
-00121 
-00122 
-00123 #endif // #ifndef NVBLASTMEMORY_H
+00105 #define NvBlastCreateOffsetStart(_baseOffset) \
+00106 size_t _lastOffset = _baseOffset; \
+00107 size_t _lastSize = 0
+00108 
+00110 #define NvBlastCreateOffsetAlign16(_name, _size) \
+00111 _name = align16(_lastOffset + _lastSize); \
+00112 _lastOffset = _name; \
+00113 _lastSize = _size
+00114 
+00116 #define NvBlastCreateOffsetEndAlign16() \
+00117 align16(_lastOffset + _lastSize)
+00118 
+00119 
+00121 #if NV_WINDOWS_FAMILY
+00122 #include <malloc.h>
+00123 #define NvBlastAlloca(x) _alloca(x)
+00124 #elif NV_LINUX || NV_ANDROID
+00125 #include <alloca.h>
+00126 #define NvBlastAlloca(x) alloca(x)
+00127 #elif NV_APPLE_FAMILY
+00128 #include <alloca.h>
+00129 #define NvBlastAlloca(x) alloca(x)
+00130 #elif NV_PS4
+00131 #include <memory.h>
+00132 #define NvBlastAlloca(x) alloca(x)
+00133 #elif NV_XBOXONE
+00134 #include <malloc.h>
+00135 #define NvBlastAlloca(x) alloca(x)
+00136 #endif
+00137 
+00138 #define NvBlastAllocaAligned16(x) (void*)(((uintptr_t)PxAlloca(x + 0xF) + 0xF) & ~(uintptr_t)0xF)
+00139 
+00140 
+00141 #endif // #ifndef NVBLASTMEMORY_H
 
-

sdk/lowlevel/include/NvBlastPreprocessor.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTPREPROCESSOR_H
-00012 #define NVBLASTPREPROCESSOR_H
-00013 
-00014 
-00015 #include "NvPreprocessor.h"
-00016 
-00017 
-00019 #define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT
-00020 
-00021 
-00025 #define NVBLAST_LOG_ERROR(_logFn, _msg)     if (_logFn != nullptr) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } ((void)0)
-00026 #define NVBLAST_LOG_WARNING(_logFn, _msg)   if (_logFn != nullptr) { _logFn(NvBlastMessage::Warning, _msg, __FILE__, __LINE__); } ((void)0)
-00027 #define NVBLAST_LOG_INFO(_logFn, _msg)      if (_logFn != nullptr) { _logFn(NvBlastMessage::Info, _msg, __FILE__, __LINE__); } ((void)0)
-00028 #define NVBLAST_LOG_DEBUG(_logFn, _msg)     if (_logFn != nullptr) { _logFn(NvBlastMessage::Debug, _msg, __FILE__, __LINE__); } ((void)0)
-00029 
-00030 
-00031 #endif // ifndef NVBLASTPREPROCESSOR_H
+

sdk/lowlevel/include/NvBlastPreprocessor.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTPREPROCESSOR_H
+00030 #define NVBLASTPREPROCESSOR_H
+00031 
+00032 
+00033 #include "NvPreprocessor.h"
+00034 
+00035 
+00037 #define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT
+00038 
+00039 
+00040 #endif // ifndef NVBLASTPREPROCESSOR_H
 
-

- -

-
- - - - - - - - - - - - -
#define NVBLAST_LOG_DEBUG (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Debug, _msg, __FILE__, __LINE__); } ((void)0)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - -
#define NVBLAST_LOG_ERROR (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } ((void)0)
-
-
- -

-Macros for more convenient logging -

-

- -

-
- - - - - - - - - - - - -
#define NVBLAST_LOG_INFO (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Info, _msg, __FILE__, __LINE__); } ((void)0)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - -
#define NVBLAST_LOG_WARNING (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Warning, _msg, __FILE__, __LINE__); } ((void)0)
-
-
- -

-

diff --git a/docs/api_docs/files/_nv_blast_preprocessor_internal_8h-source.html b/docs/api_docs/files/_nv_blast_preprocessor_internal_8h-source.html index a4e8be9..ef208bb 100644 --- a/docs/api_docs/files/_nv_blast_preprocessor_internal_8h-source.html +++ b/docs/api_docs/files/_nv_blast_preprocessor_internal_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/common/NvBlastPreprocessorInternal.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastPreprocessorInternal.h Source File @@ -19,41 +19,65 @@


-

sdk/common/NvBlastPreprocessorInternal.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTPREPROCESSORINTERNAL_H
-00012 #define NVBLASTPREPROCESSORINTERNAL_H
-00013 
-00014 
-00015 #include "NvPreprocessor.h"
-00016 
-00017 
-00019 #define NVBLAST_CHECK_PARAMS (NV_DEBUG || NV_CHECKED)
-00020 
-00021 
-00022 #if NVBLAST_CHECK_PARAMS
-00023 #define NVBLAST_CHECK(_expr, _logFn, _msg, _onFail)                                                                     \
-00024     {                                                                                                                   \
-00025         if(!(_expr))                                                                                                    \
-00026         {                                                                                                               \
-00027             if (_logFn) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); }                                    \
-00028             { _onFail; };                                                                                               \
-00029         }                                                                                                               \
-00030     }                                                                                                                   
-00031 #else
-00032 #define NVBLAST_CHECK(_expr, _logFn, _msg, _onFail) NV_UNUSED(_logFn)
-00033 #endif
-00034 
+

sdk/common/NvBlastPreprocessorInternal.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTPREPROCESSORINTERNAL_H
+00030 #define NVBLASTPREPROCESSORINTERNAL_H
+00031 
+00032 
+00033 #include "NvPreprocessor.h"
+00034 
 00035 
-00036 #endif // ifndef NVBLASTPREPROCESSORINTERNAL_H
+00039 #define NVBLASTLL_LOG_ERROR(_logFn, _msg)       if (_logFn != nullptr) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } ((void)0)
+00040 #define NVBLASTLL_LOG_WARNING(_logFn, _msg)     if (_logFn != nullptr) { _logFn(NvBlastMessage::Warning, _msg, __FILE__, __LINE__); } ((void)0)
+00041 #define NVBLASTLL_LOG_INFO(_logFn, _msg)        if (_logFn != nullptr) { _logFn(NvBlastMessage::Info, _msg, __FILE__, __LINE__); } ((void)0)
+00042 #define NVBLASTLL_LOG_DEBUG(_logFn, _msg)       if (_logFn != nullptr) { _logFn(NvBlastMessage::Debug, _msg, __FILE__, __LINE__); } ((void)0)
+00043 
+00044 
+00046 #define NVBLASTLL_CHECK_PARAMS (NV_DEBUG || NV_CHECKED)
+00047 
+00048 
+00049 #if NVBLASTLL_CHECK_PARAMS
+00050 #define NVBLASTLL_CHECK(_expr, _logFn, _msg, _onFail)                                                                       \
+00051     {                                                                                                                   \
+00052         if(!(_expr))                                                                                                    \
+00053         {                                                                                                               \
+00054             if (_logFn) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); }                                    \
+00055             { _onFail; };                                                                                               \
+00056         }                                                                                                               \
+00057     }                                                                                                                   
+00058 #else
+00059 #define NVBLASTLL_CHECK(_expr, _logFn, _msg, _onFail) NV_UNUSED(_logFn)
+00060 #endif
+00061 
+00062 
+00063 #endif // ifndef NVBLASTPREPROCESSORINTERNAL_H
 

+ +

+
+ + + + + + + + + + + + +
#define NVBLASTLL_LOG_DEBUG (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Debug, _msg, __FILE__, __LINE__); } ((void)0)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + +
#define NVBLASTLL_LOG_ERROR (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } ((void)0)
+
+
+ +

+Macros for more convenient logging +

+

+ +

+
+ + + + + + + + + + + + +
#define NVBLASTLL_LOG_INFO (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Info, _msg, __FILE__, __LINE__); } ((void)0)
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + +
#define NVBLASTLL_LOG_WARNING (_logFn,
_msg   )    if (_logFn != nullptr) { _logFn(NvBlastMessage::Warning, _msg, __FILE__, __LINE__); } ((void)0)
+
+
+ +

+

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 a4b132a..5defa7a 100644 --- a/docs/api_docs/files/_nv_blast_profiler_8h-source.html +++ b/docs/api_docs/files/_nv_blast_profiler_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/lowlevel/include/NvBlastProfiler.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/globals/include/NvBlastProfiler.h Source File @@ -19,42 +19,80 @@


-

sdk/lowlevel/include/NvBlastProfiler.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTPROFILER_H
-00012 #define NVBLASTPROFILER_H
-00013 
-00014 #include "NvBlastPreprocessor.h"
-00015 
-00016 namespace physx {
-00017     class PxProfilerCallback;
-00018 }
-00019 
-00020 struct NvBlastProfilerDetail
-00021 {
-00022     enum Level
-00023     {
-00024         LOW,
-00025         MEDIUM,
-00026         HIGH
-00027     };
-00028 };
-00029 
-00037 NVBLAST_API void NvBlastProfilerSetCallback(physx::PxProfilerCallback* pcb);
-00038 
-00043 NVBLAST_API void NvBlastProfilerEnablePlatform(bool);
-00044 
-00050 NVBLAST_API void NvBlastProfilerSetDetail(NvBlastProfilerDetail::Level);
-00051 
-00052 #endif
+

sdk/globals/include/NvBlastProfiler.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTPROFILER_H
+00030 #define NVBLASTPROFILER_H
+00031 
+00032 #include "NvBlastPreprocessor.h"
+00033 
+00034 
+00035 namespace Nv
+00036 {
+00037 namespace Blast
+00038 {
+00039 
+00040 
+00044 class ProfilerCallback
+00045 {
+00046 protected:
+00047     virtual ~ProfilerCallback() {}
+00048 
+00049 public:
+00053     virtual void zoneStart(const char* name) = 0;
+00054 
+00058     virtual void zoneEnd() = 0;
+00059 };
+00060 
+00061 
+00065 struct ProfilerDetail
+00066 {
+00067     enum Level
+00068     {
+00069         LOW,
+00070         MEDIUM,
+00071         HIGH
+00072     };
+00073 };
+00074 
+00075 
+00076 } // namespace Blast
+00077 } // namespace Nv
+00078 
+00079 
+00087 NVBLAST_API void NvBlastProfilerSetCallback(Nv::Blast::ProfilerCallback* pcb);
+00088 
+00089 
+00095 NVBLAST_API void NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::Level);
+00096 
+00097 
+00098 #endif
 
-

sdk/lowlevel/include/NvBlastProfiler.h File Reference

#include "NvBlastPreprocessor.h"
+

sdk/globals/include/NvBlastProfiler.h File Reference

#include "NvBlastPreprocessor.h"

Go to the source code of this file. - + + + - + - - + - + + - +

Classes

struct  NvBlastProfilerDetail
class  Nv::Blast::ProfilerCallback
struct  Nv::Blast::ProfilerDetail

Namespaces

namespace  physx
namespace  Nv

Functions

void NvBlastProfilerEnablePlatform (bool)
namespace  Nv::Blast
void NvBlastProfilerSetCallback (physx::PxProfilerCallback *pcb)

Functions

void NvBlastProfilerSetCallback (Nv::Blast::ProfilerCallback *pcb)
void NvBlastProfilerSetDetail (NvBlastProfilerDetail::Level)
void NvBlastProfilerSetDetail (Nv::Blast::ProfilerDetail::Level)


Function Documentation

- -
-
- - - - - - - - - -
void NvBlastProfilerEnablePlatform (bool   ) 
-
-
- -

-Enable events for platform specific profiler tools. Currently supported: Nsight, PS4, Xbox One -

-

- +

- + @@ -77,17 +59,17 @@ Enable events for platform specific profiler tools. Currently supported: Nsight,

-Profiler features are only active in checked, debug and profile builds. Set a callback to PVD or another PxProfilerCallback based profiler. +Profiler features are only active in checked, debug and profile builds. Set a custom profiler callback. May be nullptr (the default).

- +

void NvBlastProfilerSetCallback (physx::PxProfilerCallback * Nv::Blast::ProfilerCallback pcb  ) 
- + @@ -97,7 +79,7 @@ Profiler features are only active in checked, debug and profile builds. Set a ca

-Sets the depth of reported profile zones. Higher levels (more nesting) of instrumentation can have a significant impact. Defaults to NvBlastProfilerDetail::Level::LOW. +Sets the depth of reported profile zones. Higher levels (more nesting) of instrumentation can have a significant impact. Defaults to Nv::Blast::ProfilerDetail::Level::LOW.

diff --git a/docs/api_docs/files/_nv_blast_profiler_internal_8h-source.html b/docs/api_docs/files/_nv_blast_profiler_internal_8h-source.html deleted file mode 100644 index 91cb20c..0000000 --- a/docs/api_docs/files/_nv_blast_profiler_internal_8h-source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/profiler/NvBlastProfilerInternal.h Source File - - - - - -

- -

sdk/profiler/NvBlastProfilerInternal.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTPROFILERINTERNAL_H
-00012 #define NVBLASTPROFILERINTERNAL_H
-00013 
-00014 #include "NvBlastPreprocessor.h"
-00015 #include "NvBlastProfiler.h"
-00016 
-00017 #if NV_PROFILE || NV_CHECKED || NV_DEBUG
-00018 
-00019 void NvBlastProfilerBegin(const char* name, NvBlastProfilerDetail::Level);
-00020 void NvBlastProfilerEnd(const char* name, NvBlastProfilerDetail::Level);
-00021 
-00022 class ProfileScope
-00023 {
-00024 public:
-00025     ProfileScope(const char* name, NvBlastProfilerDetail::Level level) :m_name(name), m_level(level)
-00026     {
-00027         NvBlastProfilerBegin(m_name, m_level);
-00028     }
-00029 
-00030     ~ProfileScope() 
-00031     {
-00032         NvBlastProfilerEnd(m_name, m_level);
-00033     }
-00034 
-00035 private:
-00036     const char* m_name;
-00037     NvBlastProfilerDetail::Level m_level;
-00038 };
-00039 
-00040 #define PERF_BLAST_PREFIX           "Blast: "
-00041 #define PERF_ZONE_BEGIN(name)       NvBlastProfilerBegin(PERF_BLAST_PREFIX name, NvBlastProfilerDetail::HIGH)
-00042 #define PERF_ZONE_END(name)         NvBlastProfilerEnd(PERF_BLAST_PREFIX name, NvBlastProfilerDetail::HIGH)
-00043 #define PERF_SCOPE(name, detail)    ProfileScope PX_CONCAT(_scope,__LINE__) (PERF_BLAST_PREFIX name, detail)
-00044 #define PERF_SCOPE_L(name)          PERF_SCOPE(name, NvBlastProfilerDetail::LOW)
-00045 #define PERF_SCOPE_M(name)          PERF_SCOPE(name, NvBlastProfilerDetail::MEDIUM)
-00046 #define PERF_SCOPE_H(name)          PERF_SCOPE(name, NvBlastProfilerDetail::HIGH)
-00047 
-00048 #else
-00049 
-00050 #define PERF_ZONE_BEGIN(name)   
-00051 #define PERF_ZONE_END(name)
-00052 #define PERF_SCOPE_L(name)
-00053 #define PERF_SCOPE_M(name)
-00054 #define PERF_SCOPE_H(name)
-00055 
-00056 #endif
-00057 
-00058 #endif
-
- - - - diff --git a/docs/api_docs/files/_nv_blast_profiler_internal_8h.html b/docs/api_docs/files/_nv_blast_profiler_internal_8h.html deleted file mode 100644 index c3f2265..0000000 --- a/docs/api_docs/files/_nv_blast_profiler_internal_8h.html +++ /dev/null @@ -1,148 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/profiler/NvBlastProfilerInternal.h File Reference - - - - - - - -
-

sdk/profiler/NvBlastProfilerInternal.h File Reference

#include "NvBlastPreprocessor.h"
-#include "NvBlastProfiler.h"
- -

-Go to the source code of this file.

void NvBlastProfilerSetDetail (NvBlastProfilerDetail::Level Nv::Blast::ProfilerDetail::Level   ) 
- - - - - - - - - - - - -

Defines

#define PERF_SCOPE_H(name)
#define PERF_SCOPE_L(name)
#define PERF_SCOPE_M(name)
#define PERF_ZONE_BEGIN(name)
#define PERF_ZONE_END(name)
-

Define Documentation

- -
-
- - - - - - - - - -
#define PERF_SCOPE_H (name   ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - -
#define PERF_SCOPE_L (name   ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - -
#define PERF_SCOPE_M (name   ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - -
#define PERF_ZONE_BEGIN (name   ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - -
#define PERF_ZONE_END (name   ) 
-
-
- -

- -

-

-

- - - - 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 new file mode 100644 index 0000000..fa6a56e --- /dev/null +++ b/docs/api_docs/files/_nv_blast_px_callbacks_8h-source.html @@ -0,0 +1,96 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastPxCallbacks.h Source File + + + + + + + +

sdk/extensions/physx/include/NvBlastPxCallbacks.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTPXCALLBACKS_H
+00030 #define NVBLASTPXCALLBACKS_H
+00031 
+00032 #include "NvBlastGlobals.h"
+00033 #include "PxErrorCallback.h"
+00034 #include "PxAllocatorCallback.h"
+00035 
+00041 NV_INLINE physx::PxErrorCallback& NvBlastGetPxErrorCallback()
+00042 {
+00043     class PxErrorCallbackWrapper : public physx::PxErrorCallback
+00044     {
+00045         virtual void reportError(physx::PxErrorCode::Enum code, const char* message, const char* file, int line) override
+00046         {
+00047             NvBlastGlobalGetErrorCallback()->reportError((Nv::Blast::ErrorCode::Enum)code, message, file, line);
+00048         }
+00049     };
+00050     static PxErrorCallbackWrapper wrapper;
+00051     return wrapper;
+00052 }
+00053 
+00054 NV_INLINE physx::PxAllocatorCallback& NvBlastGetPxAllocatorCallback()
+00055 {
+00056     class PxAllocatorCallbackWrapper : public physx::PxAllocatorCallback
+00057     {
+00058         virtual void* allocate(size_t size, const char* typeName, const char* filename, int line) override
+00059         {
+00060             return NvBlastGlobalGetAllocatorCallback()->allocate(size, typeName, filename, line);
+00061         }
+00062 
+00063         virtual void deallocate(void* ptr) override
+00064         {
+00065             NvBlastGlobalGetAllocatorCallback()->deallocate(ptr);
+00066         }
+00067     };
+00068     static PxAllocatorCallbackWrapper wrapper;
+00069     return wrapper;
+00070 }
+00071 
+00072 
+00073 #endif // #ifndef NVBLASTPXCALLBACKS_H
+
+ + + + diff --git a/docs/api_docs/files/_nv_blast_px_callbacks_8h.html b/docs/api_docs/files/_nv_blast_px_callbacks_8h.html new file mode 100644 index 0000000..9a98a58 --- /dev/null +++ b/docs/api_docs/files/_nv_blast_px_callbacks_8h.html @@ -0,0 +1,82 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/extensions/physx/include/NvBlastPxCallbacks.h File Reference + + + + + + + +
+

sdk/extensions/physx/include/NvBlastPxCallbacks.h File Reference

#include "NvBlastGlobals.h"
+#include "PxErrorCallback.h"
+#include "PxAllocatorCallback.h"
+ +

+Go to the source code of this file. + + + + + + +

Functions

NV_INLINE
+physx::PxAllocatorCallback & 
NvBlastGetPxAllocatorCallback ()
NV_INLINE physx::PxErrorCallback & NvBlastGetPxErrorCallback ()
+


Function Documentation

+ +
+
+ + + + + + + + +
NV_INLINE physx::PxAllocatorCallback& NvBlastGetPxAllocatorCallback (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
NV_INLINE physx::PxErrorCallback& NvBlastGetPxErrorCallback (  ) 
+
+
+ +

+This file contains helper functions to get PxShared compatible versions of global AllocatorCallback and ErrorCallback. +

+

+

+ + + + diff --git a/docs/api_docs/files/_nv_blast_time_8h-source.html b/docs/api_docs/files/_nv_blast_time_8h-source.html index 24d7450..029ad00 100644 --- a/docs/api_docs/files/_nv_blast_time_8h-source.html +++ b/docs/api_docs/files/_nv_blast_time_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/common/NvBlastTime.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/common/NvBlastTime.h Source File @@ -24,108 +24,121 @@ 00003 // 00004 // Notice 00005 // NVIDIA Corporation and its licensors retain all intellectual property and -00006 /* -00007 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. -00008 * -00009 * NVIDIA CORPORATION and its licensors retain all intellectual property -00010 * and proprietary rights in and to this software, related documentation -00011 * and any modifications thereto. Any use, reproduction, disclosure or -00012 * distribution of this software and related documentation without an express -00013 * license agreement from NVIDIA CORPORATION is strictly prohibited. -00014 */ -00015 -00016 #ifndef NVBLASTTIME_H -00017 #define NVBLASTTIME_H -00018 -00019 #include "NvBlastTypes.h" -00020 -00021 -00022 namespace Nv -00023 { -00024 namespace Blast -00025 { -00026 -00027 class Time -00028 { -00029 public: -00030 Time() : m_lastTickCount(getTimeTicks()) {} -00031 -00032 int64_t getElapsedTicks() -00033 { -00034 const int64_t lastTickCount = m_lastTickCount; -00035 m_lastTickCount = getTimeTicks(); -00036 return m_lastTickCount - lastTickCount; -00037 } -00038 -00039 int64_t peekElapsedTicks() const -00040 { -00041 return getTimeTicks() - m_lastTickCount; -00042 } -00043 -00044 int64_t getLastTickCount() const -00045 { -00046 return m_lastTickCount; -00047 } -00048 -00049 static double seconds(int64_t ticks) -00050 { -00051 return s_secondsPerTick * ticks; -00052 } -00053 -00054 private: -00055 int64_t getTimeTicks() const; -00056 static double getTickDuration(); -00057 -00058 int64_t m_lastTickCount; -00059 static const double s_secondsPerTick; -00060 }; +00006 // proprietary rights in and to this software and related documentation and +00007 // any modifications thereto. Any use, reproduction, disclosure, or +00008 // distribution of this software and related documentation without an express +00009 // license agreement from NVIDIA Corporation is strictly prohibited. +00010 // +00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +00015 // +00016 // Information and code furnished is believed to be accurate and reliable. +00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +00018 // information or for any infringement of patents or other rights of third parties that may +00019 // result from its use. No license is granted by implication or otherwise under any patent +00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice. +00021 // This code supersedes and replaces all information previously supplied. +00022 // NVIDIA Corporation products are not authorized for use as critical +00023 // components in life support devices or systems without express written approval of +00024 // NVIDIA Corporation. +00025 // +00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved. +00027 +00028 +00029 #ifndef NVBLASTTIME_H +00030 #define NVBLASTTIME_H +00031 +00032 #include "NvBlastTypes.h" +00033 +00034 +00035 namespace Nv +00036 { +00037 namespace Blast +00038 { +00039 +00040 class Time +00041 { +00042 public: +00043 Time() : m_lastTickCount(getTimeTicks()) {} +00044 +00045 int64_t getElapsedTicks() +00046 { +00047 const int64_t lastTickCount = m_lastTickCount; +00048 m_lastTickCount = getTimeTicks(); +00049 return m_lastTickCount - lastTickCount; +00050 } +00051 +00052 int64_t peekElapsedTicks() const +00053 { +00054 return getTimeTicks() - m_lastTickCount; +00055 } +00056 +00057 int64_t getLastTickCount() const +00058 { +00059 return m_lastTickCount; +00060 } 00061 -00062 } // namespace Blast -00063 } // namespace Nv -00064 -00065 -00067 -00068 #if NV_MICROSOFT_FAMILY -00069 -00070 #include "NvBlastIncludeWindows.h" -00071 -00072 NV_INLINE int64_t Nv::Blast::Time::getTimeTicks() const -00073 { -00074 LARGE_INTEGER a; -00075 QueryPerformanceCounter(&a); -00076 return a.QuadPart; -00077 } +00062 static double seconds(int64_t ticks) +00063 { +00064 return s_secondsPerTick * ticks; +00065 } +00066 +00067 private: +00068 int64_t getTimeTicks() const; +00069 static double getTickDuration(); +00070 +00071 int64_t m_lastTickCount; +00072 static const double s_secondsPerTick; +00073 }; +00074 +00075 } // namespace Blast +00076 } // namespace Nv +00077 00078 -00079 NV_INLINE double Nv::Blast::Time::getTickDuration() -00080 { -00081 LARGE_INTEGER a; -00082 QueryPerformanceFrequency(&a); -00083 return 1.0 / (double)a.QuadPart; -00084 } -00085 -00086 #elif NV_UNIX_FAMILY -00087 -00088 #include <time.h> -00089 -00090 NV_INLINE int64_t Nv::Blast::Time::getTimeTicks() const -00091 { -00092 struct timespec mCurrTimeInt; -00093 clock_gettime(CLOCK_REALTIME, &mCurrTimeInt); -00094 return (static_cast<int64_t>(mCurrTimeInt.tv_sec) * 1000000000) + (static_cast<int64_t>(mCurrTimeInt.tv_nsec)); -00095 } -00096 -00097 NV_INLINE double Nv::Blast::Time::getTickDuration() -00098 { -00099 return 1.e-9; -00100 } -00101 -00102 #elif NV_PS4 -00103 -00104 #include "ps4/NvBlastTimePS4.h" -00105 -00106 #endif -00107 -00108 #endif // #ifndef NVBLASTTIME_H +00080 +00081 #if NV_MICROSOFT_FAMILY +00082 +00083 #include "NvBlastIncludeWindows.h" +00084 +00085 NV_INLINE int64_t Nv::Blast::Time::getTimeTicks() const +00086 { +00087 LARGE_INTEGER a; +00088 QueryPerformanceCounter(&a); +00089 return a.QuadPart; +00090 } +00091 +00092 NV_INLINE double Nv::Blast::Time::getTickDuration() +00093 { +00094 LARGE_INTEGER a; +00095 QueryPerformanceFrequency(&a); +00096 return 1.0 / (double)a.QuadPart; +00097 } +00098 +00099 #elif NV_UNIX_FAMILY +00100 +00101 #include <time.h> +00102 +00103 NV_INLINE int64_t Nv::Blast::Time::getTimeTicks() const +00104 { +00105 struct timespec mCurrTimeInt; +00106 clock_gettime(CLOCK_REALTIME, &mCurrTimeInt); +00107 return (static_cast<int64_t>(mCurrTimeInt.tv_sec) * 1000000000) + (static_cast<int64_t>(mCurrTimeInt.tv_nsec)); +00108 } +00109 +00110 NV_INLINE double Nv::Blast::Time::getTickDuration() +00111 { +00112 return 1.e-9; +00113 } +00114 +00115 #elif NV_PS4 +00116 +00117 #include "ps4/NvBlastTimePS4.h" +00118 +00119 #endif +00120 +00121 #endif // #ifndef NVBLASTTIME_H
-

sdk/toolkit/include/NvBlastTk.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTK_H
-00012 #define NVBLASTTK_H
-00013 
-00014 
-00023 #include "NvBlastTkFramework.h"
-00024 #include "NvBlastTkAsset.h"
-00025 #include "NvBlastTkActor.h"
-00026 #include "NvBlastTkJoint.h"
-00027 #include "NvBlastTkFamily.h"
-00028 #include "NvBlastTkGroup.h"
-00029 
-00030 
-00031 #endif // ifndef NVBLASTTK_H
+

sdk/toolkit/include/NvBlastTk.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTK_H
+00030 #define NVBLASTTK_H
+00031 
+00032 
+00041 #include "NvBlastTkFramework.h"
+00042 #include "NvBlastTkAsset.h"
+00043 #include "NvBlastTkActor.h"
+00044 #include "NvBlastTkJoint.h"
+00045 #include "NvBlastTkFamily.h"
+00046 #include "NvBlastTkGroup.h"
+00047 
+00048 
+00049 #endif // ifndef NVBLASTTK_H
 
-

sdk/toolkit/include/NvBlastTkActor.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKACTOR_H
-00012 #define NVBLASTTKACTOR_H
-00013 
-00014 #include "NvBlastTkObject.h"
-00015 #include "NvBlastTypes.h"
-00016 
-00017 // Forward declarations
-00018 struct NvBlastActor;
-00019 struct NvBlastFamily;
-00020 
-00021 
-00022 namespace Nv
-00023 {
-00024 namespace Blast
-00025 {
-00026 
-00027 // Forward declarations
-00028 class TkAsset;
-00029 class TkFamily;
-00030 class TkGroup;
-00031 class TkJoint;
-00032 
-00033 
-00039 class TkActor : public TkObject
-00040 {
-00041 public:
-00047     virtual const NvBlastActor* getActorLL() const = 0;
-00048 
-00055     virtual TkFamily&           getFamily() const = 0;
-00056 
-00060     virtual uint32_t            getIndex() const = 0;
-00061 
-00066     virtual TkGroup*            getGroup() const = 0;
-00067 
-00073     virtual TkGroup*            removeFromGroup() = 0;
+

sdk/toolkit/include/NvBlastTkActor.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKACTOR_H
+00030 #define NVBLASTTKACTOR_H
+00031 
+00032 #include "NvBlastTkObject.h"
+00033 #include "NvBlastTypes.h"
+00034 
+00035 // Forward declarations
+00036 struct NvBlastActor;
+00037 struct NvBlastFamily;
+00038 
+00039 
+00040 namespace Nv
+00041 {
+00042 namespace Blast
+00043 {
+00044 
+00045 // Forward declarations
+00046 class TkAsset;
+00047 class TkFamily;
+00048 class TkGroup;
+00049 class TkJoint;
+00050 
+00051 
+00057 class TkActor : public TkObject
+00058 {
+00059 public:
+00065     virtual const NvBlastActor* getActorLL() const = 0;
+00066 
+00073     virtual TkFamily&           getFamily() const = 0;
 00074 
-00080     virtual const TkAsset*      getAsset() const = 0;
-00081 
-00089     virtual uint32_t            getVisibleChunkCount() const = 0;
-00090 
-00101     virtual uint32_t            getVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) const = 0;
-00102 
-00110     virtual uint32_t            getGraphNodeCount() const = 0;
-00111 
-00122     virtual uint32_t            getGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) const = 0;
-00123 
-00131     virtual const float*        getBondHealths() const = 0;
-00132 
-00140     virtual uint32_t            getSplitMaxActorCount() const = 0;
+00078     virtual uint32_t            getIndex() const = 0;
+00079 
+00084     virtual TkGroup*            getGroup() const = 0;
+00085 
+00091     virtual TkGroup*            removeFromGroup() = 0;
+00092 
+00098     virtual const TkAsset*      getAsset() const = 0;
+00099 
+00107     virtual uint32_t            getVisibleChunkCount() const = 0;
+00108 
+00119     virtual uint32_t            getVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) const = 0;
+00120 
+00128     virtual uint32_t            getGraphNodeCount() const = 0;
+00129 
+00140     virtual uint32_t            getGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) const = 0;
 00141 
-00147     virtual bool                isPending() const = 0;
-00148 
-00159     virtual void                damage(const NvBlastDamageProgram& program, const NvBlastProgramParams* programParams) = 0;
-00160 
-00174     virtual void                damage(const NvBlastDamageProgram& program, const void* damageDesc, uint32_t descSize) = 0;
-00175 
-00190     virtual void                damage(const NvBlastDamageProgram& program, const void* damageDesc, uint32_t descSize, const void* material) = 0;
-00191 
-00204     virtual void                generateFracture(NvBlastFractureBuffers* commands, const NvBlastDamageProgram& program, const NvBlastProgramParams* programParams) const = 0;
-00205 
-00215     virtual void                applyFracture(NvBlastFractureBuffers* eventBuffers, const NvBlastFractureBuffers* commands) = 0;
-00216 
-00222     virtual uint32_t            getJointCount() const = 0;
+00149     virtual const float*        getBondHealths() const = 0;
+00150 
+00158     virtual uint32_t            getSplitMaxActorCount() const = 0;
+00159 
+00165     virtual bool                isPending() const = 0;
+00166 
+00177     virtual void                damage(const NvBlastDamageProgram& program, const NvBlastProgramParams* programParams) = 0;
+00178 
+00192     virtual void                damage(const NvBlastDamageProgram& program, const void* damageDesc, uint32_t descSize) = 0;
+00193 
+00208     virtual void                damage(const NvBlastDamageProgram& program, const void* damageDesc, uint32_t descSize, const void* material) = 0;
+00209 
+00222     virtual void                generateFracture(NvBlastFractureBuffers* commands, const NvBlastDamageProgram& program, const NvBlastProgramParams* programParams) const = 0;
 00223 
-00232     virtual uint32_t            getJoints(TkJoint** joints, uint32_t jointsSize) const = 0;
-00233 };
+00233     virtual void                applyFracture(NvBlastFractureBuffers* eventBuffers, const NvBlastFractureBuffers* commands) = 0;
 00234 
-00235 } // namespace Blast
-00236 } // namespace Nv
-00237 
-00238 
-00239 #endif // ifndef NVBLASTTKACTOR_H
+00240     virtual uint32_t            getJointCount() const = 0;
+00241 
+00250     virtual uint32_t            getJoints(TkJoint** joints, uint32_t jointsSize) const = 0;
+00251 
+00259     virtual bool                isBoundToWorld() const = 0;
+00260 };
+00261 
+00262 } // namespace Blast
+00263 } // namespace Nv
+00264 
+00265 
+00266 #endif // ifndef NVBLASTTKACTOR_H
 
-

sdk/toolkit/include/NvBlastTkAsset.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKASSET_H
-00012 #define NVBLASTTKASSET_H
-00013 
-00014 #include "NvBlastTkSerializable.h"
-00015 #include "NvBlastTypes.h"
-00016 #include "PxVec3.h"
-00017 
-00018 // Forward declarations
-00019 struct NvBlastAsset;
-00020 
-00021 
-00022 namespace Nv
-00023 {
-00024 namespace Blast
-00025 {
-00026 
-00030 struct TkAssetJointDesc
-00031 {
-00032     uint32_t        nodeIndices[2];     
-00033     physx::PxVec3   attachPositions[2]; 
-00034 };
+

sdk/toolkit/include/NvBlastTkAsset.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKASSET_H
+00030 #define NVBLASTTKASSET_H
+00031 
+00032 #include "NvBlastTkIdentifiable.h"
+00033 #include "NvBlastTypes.h"
+00034 #include "PxVec3.h"
 00035 
-00036 
-00041 class TkAsset : public TkSerializable
-00042 {
-00043 public:
-00049     virtual const NvBlastAsset*         getAssetLL() const = 0;
-00050 
-00058     virtual uint32_t                    getChunkCount() const = 0;
-00059 
-00067     virtual uint32_t                    getLeafChunkCount() const = 0;
+00036 // Forward declarations
+00037 struct NvBlastAsset;
+00038 
+00039 
+00040 namespace Nv
+00041 {
+00042 namespace Blast
+00043 {
+00044 
+00048 struct TkAssetJointDesc
+00049 {
+00050     uint32_t        nodeIndices[2];     
+00051     physx::PxVec3   attachPositions[2]; 
+00052 };
+00053 
+00054 
+00059 class TkAsset : public TkIdentifiable
+00060 {
+00061 public:
+00067     virtual const NvBlastAsset*         getAssetLL() const = 0;
 00068 
-00076     virtual uint32_t                    getBondCount() const = 0;
+00076     virtual uint32_t                    getChunkCount() const = 0;
 00077 
-00085     virtual const NvBlastChunk*         getChunks() const = 0;
+00085     virtual uint32_t                    getLeafChunkCount() const = 0;
 00086 
-00094     virtual const NvBlastBond*          getBonds() const = 0;
+00094     virtual uint32_t                    getBondCount() const = 0;
 00095 
-00103     virtual const NvBlastSupportGraph   getGraph() const = 0;
+00103     virtual const NvBlastChunk*         getChunks() const = 0;
 00104 
-00112     virtual uint32_t                    getDataSize() const = 0;
+00112     virtual const NvBlastBond*          getBonds() const = 0;
 00113 
-00122     virtual uint32_t                    getJointDescCount() const = 0;
-00123 
-00129     virtual const TkAssetJointDesc*     getJointDescs() const = 0;
-00130 };
+00121     virtual const NvBlastSupportGraph   getGraph() const = 0;
+00122 
+00130     virtual uint32_t                    getDataSize() const = 0;
 00131 
-00132 } // namespace Blast
-00133 } // namespace Nv
-00134 
-00135 
-00136 #endif // ifndef NVBLASTTKASSET_H
+00140     virtual uint32_t                    getJointDescCount() const = 0;
+00141 
+00147     virtual const TkAssetJointDesc*     getJointDescs() const = 0;
+00148 };
+00149 
+00150 } // namespace Blast
+00151 } // namespace Nv
+00152 
+00153 
+00154 #endif // ifndef NVBLASTTKASSET_H
 
-

sdk/toolkit/include/NvBlastTkAsset.h File Reference

#include "NvBlastTkSerializable.h"
+

sdk/toolkit/include/NvBlastTkAsset.h File Reference

#include "NvBlastTkIdentifiable.h"
#include "NvBlastTypes.h"
#include "PxVec3.h"
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 fd75804..60b6d82 100644 --- a/docs/api_docs/files/_nv_blast_tk_event_8h-source.html +++ b/docs/api_docs/files/_nv_blast_tk_event_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/toolkit/include/NvBlastTkEvent.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/toolkit/include/NvBlastTkEvent.h Source File @@ -19,125 +19,143 @@
-

sdk/toolkit/include/NvBlastTkEvent.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKEVENT_H
-00012 #define NVBLASTTKEVENT_H
-00013 
-00014 #include <vector>
-00015 
-00016 #include "NvBlastTypes.h"
-00017 
-00018 
-00019 namespace Nv
-00020 {
-00021 namespace Blast
-00022 {
-00023 
-00024 // Forward declarations
-00025 class TkObject;
-00026 class TkActor;
-00027 class TkFamily;
-00028 class TkJoint;
-00029 
-00030 
-00035 struct TkActorData
-00036 {
-00037     TkFamily*   family;     
-00038     void*       userData;   
-00039     uint32_t    index;      
-00040 };
+

sdk/toolkit/include/NvBlastTkEvent.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKEVENT_H
+00030 #define NVBLASTTKEVENT_H
+00031 
+00032 #include <vector>
+00033 
+00034 #include "NvBlastTypes.h"
+00035 
+00036 
+00037 namespace Nv
+00038 {
+00039 namespace Blast
+00040 {
 00041 
-00042 
-00047 struct TkEvent
-00048 {
-00049     // Enums
-00050     enum Type
-00051     {
-00052         Split,              
-00053         FractureCommand,    
-00054         FractureEvent,      
-00055         JointUpdate,        
-00056 
-00057         TypeCount
-00058     };
+00042 // Forward declarations
+00043 class TkObject;
+00044 class TkActor;
+00045 class TkFamily;
+00046 class TkJoint;
+00047 
+00048 
+00053 struct TkActorData
+00054 {
+00055     TkFamily*   family;     
+00056     void*       userData;   
+00057     uint32_t    index;      
+00058 };
 00059 
-00060     // Data
-00061     const void* payload;    
-00062     Type        type;       
-00063 
-00069     template<typename T>
-00070     const T* getPayload() const { return reinterpret_cast<const T*>(payload); }
-00071 };
-00072 
-00073 
-00081 struct TkSplitEvent
-00082 {
-00083     enum { EVENT_TYPE = TkEvent::Split };
-00084 
-00085     TkActorData parentData;     
-00086     uint32_t    numChildren;    
-00087     TkActor**   children;       
-00088 };
-00089 
+00060 
+00065 struct TkEvent
+00066 {
+00067     // Enums
+00068     enum Type
+00069     {
+00070         Split,              
+00071         FractureCommand,    
+00072         FractureEvent,      
+00073         JointUpdate,        
+00074 
+00075         TypeCount
+00076     };
+00077 
+00078     // Data
+00079     const void* payload;    
+00080     Type        type;       
+00081 
+00087     template<typename T>
+00088     const T* getPayload() const { return reinterpret_cast<const T*>(payload); }
+00089 };
 00090 
-00096 struct TkFractureCommands
-00097 {
-00098     enum { EVENT_TYPE = TkEvent::FractureCommand };
-00099 
-00100     TkActorData             tkActorData;    
-00101     NvBlastFractureBuffers  buffers;        
-00102 };
-00103 
-00104 
-00110 struct TkFractureEvents
-00111 {
-00112     enum { EVENT_TYPE = TkEvent::FractureEvent };
-00113 
-00114     TkActorData             tkActorData;    
-00115     NvBlastFractureBuffers  buffers;        
-00116     uint32_t                bondsDamaged;   
-00117     uint32_t                bondsBroken;    
-00118     uint32_t                chunksDamaged;  
-00119     uint32_t                chunksBroken;   
+00091 
+00099 struct TkSplitEvent
+00100 {
+00101     enum { EVENT_TYPE = TkEvent::Split };
+00102 
+00103     TkActorData parentData;     
+00104     uint32_t    numChildren;    
+00105     TkActor**   children;       
+00106 };
+00107 
+00108 
+00114 struct TkFractureCommands
+00115 {
+00116     enum { EVENT_TYPE = TkEvent::FractureCommand };
+00117 
+00118     TkActorData             tkActorData;    
+00119     NvBlastFractureBuffers  buffers;        
 00120 };
 00121 
 00122 
-00130 struct TkJointUpdateEvent
-00131 {
-00132     enum { EVENT_TYPE = TkEvent::JointUpdate };
-00133 
-00134     enum Subtype
-00135     {
-00136         External,       
-00137         Changed,        
-00138         Unreferenced    
-00139     };
+00128 struct TkFractureEvents
+00129 {
+00130     enum { EVENT_TYPE = TkEvent::FractureEvent };
+00131 
+00132     TkActorData             tkActorData;    
+00133     NvBlastFractureBuffers  buffers;        
+00134     uint32_t                bondsDamaged;   
+00135     uint32_t                bondsBroken;    
+00136     uint32_t                chunksDamaged;  
+00137     uint32_t                chunksBroken;   
+00138 };
+00139 
 00140 
-00141     TkJoint*    joint;      
-00142     Subtype     subtype;    
-00143 };
-00144 
-00145 
-00150 class TkEventListener
-00151 {
-00152 public:
-00159     virtual void    receive(const TkEvent* events, uint32_t eventCount) = 0;
-00160 };
-00161 
-00162 } // namespace Blast
-00163 } // namespace Nv
-00164 
-00165 
-00166 #endif // ifndef NVBLASTTKEVENT_H
+00148 struct TkJointUpdateEvent
+00149 {
+00150     enum { EVENT_TYPE = TkEvent::JointUpdate };
+00151 
+00152     enum Subtype
+00153     {
+00154         External,       
+00155         Changed,        
+00156         Unreferenced    
+00157     };
+00158 
+00159     TkJoint*    joint;      
+00160     Subtype     subtype;    
+00161 };
+00162 
+00163 
+00168 class TkEventListener
+00169 {
+00170 public:
+00177     virtual void    receive(const TkEvent* events, uint32_t eventCount) = 0;
+00178 };
+00179 
+00180 } // namespace Blast
+00181 } // namespace Nv
+00182 
+00183 
+00184 #endif // ifndef NVBLASTTKEVENT_H
 
-

sdk/toolkit/include/NvBlastTkFamily.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKFAMILY_H
-00012 #define NVBLASTTKFAMILY_H
-00013 
-00014 #include "NvBlastTkSerializable.h"
-00015 
-00016 
-00017 // Forward declarations
-00018 struct NvBlastFamily;
-00019 
-00020 
-00021 namespace Nv
-00022 {
-00023 namespace Blast
-00024 {
-00025 
-00026 // Forward declarations
-00027 class TkActor;
-00028 class TkAsset;
-00029 class TkEventListener;
-00030 
-00031 
-00037 class TkFamily : public TkSerializable
-00038 {
-00039 public:
-00045     virtual const NvBlastFamily*    getFamilyLL() const = 0;
-00046 
-00052     virtual const TkAsset*          getAsset() const = 0;
-00053 
-00059     virtual uint32_t                getActorCount() const = 0;
-00060 
-00070     virtual uint32_t                getActors(TkActor** buffer, uint32_t bufferSize, uint32_t indexStart = 0) const = 0;
+

sdk/toolkit/include/NvBlastTkFamily.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKFAMILY_H
+00030 #define NVBLASTTKFAMILY_H
+00031 
+00032 #include "NvBlastTkIdentifiable.h"
+00033 
+00034 
+00035 // Forward declarations
+00036 struct NvBlastFamily;
+00037 
+00038 
+00039 namespace Nv
+00040 {
+00041 namespace Blast
+00042 {
+00043 
+00044 // Forward declarations
+00045 class TkActor;
+00046 class TkAsset;
+00047 class TkEventListener;
+00048 
+00049 
+00055 class TkFamily : public TkIdentifiable
+00056 {
+00057 public:
+00063     virtual const NvBlastFamily*    getFamilyLL() const = 0;
+00064 
+00070     virtual const TkAsset*          getAsset() const = 0;
 00071 
-00079     virtual void                    addListener(TkEventListener& l) = 0;
-00080 
-00086     virtual void                    removeListener(TkEventListener& l) = 0;
-00087 
-00093     virtual void                    applyFracture(const NvBlastFractureBuffers* commands) = 0;
-00094 
-00103     virtual void                    reinitialize(const NvBlastFamily* newFamily, TkGroup* group = nullptr) = 0;
-00104 
-00110     virtual const void*             getMaterial() const = 0;
-00111 
-00117     virtual void                    setMaterial(const void* material) = 0;
-00118 };
-00119 
-00120 } // namespace Blast
-00121 } // namespace Nv
+00077     virtual uint32_t                getActorCount() const = 0;
+00078 
+00088     virtual uint32_t                getActors(TkActor** buffer, uint32_t bufferSize, uint32_t indexStart = 0) const = 0;
+00089 
+00097     virtual void                    addListener(TkEventListener& l) = 0;
+00098 
+00104     virtual void                    removeListener(TkEventListener& l) = 0;
+00105 
+00111     virtual void                    applyFracture(const NvBlastFractureBuffers* commands) = 0;
+00112 
+00121     virtual void                    reinitialize(const NvBlastFamily* newFamily, TkGroup* group = nullptr) = 0;
 00122 
-00123 
-00124 #endif // ifndef NVBLASTTKFAMILY_H
+00128     virtual const void*             getMaterial() const = 0;
+00129 
+00135     virtual void                    setMaterial(const void* material) = 0;
+00136 };
+00137 
+00138 } // namespace Blast
+00139 } // namespace Nv
+00140 
+00141 
+00142 #endif // ifndef NVBLASTTKFAMILY_H
 
-

sdk/toolkit/include/NvBlastTkFamily.h File Reference

#include "NvBlastTkSerializable.h"
+

sdk/toolkit/include/NvBlastTkFamily.h File Reference

#include "NvBlastTkIdentifiable.h"

Go to the source code of this file. 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 0bb2c72..89b5be6 100644 --- a/docs/api_docs/files/_nv_blast_tk_framework_8h-source.html +++ b/docs/api_docs/files/_nv_blast_tk_framework_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/toolkit/include/NvBlastTkFramework.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/toolkit/include/NvBlastTkFramework.h Source File @@ -19,176 +19,172 @@
-

sdk/toolkit/include/NvBlastTkFramework.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKFRAMEWORK_H
-00012 #define NVBLASTTKFRAMEWORK_H
-00013 
-00014 
-00015 #include "NvBlastTkType.h"
-00016 #include "NvBlastTkEvent.h"
-00017 
-00018 #include "NvBlastPreprocessor.h"
-00019 #include "NvBlastTypes.h"
-00020 
-00021 #include "PxVec3.h"
-00022 
-00023 
-00024 // Forward declarations
-00025 namespace physx
-00026 {
-00027 class PxErrorCallback;
-00028 class PxAllocatorCallback;
-00029 class PxTransform;
-00030 namespace general_PxIOStream2
-00031 {
-00032 class PxFileBuf;
-00033 }
-00034 }
+

sdk/toolkit/include/NvBlastTkFramework.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKFRAMEWORK_H
+00030 #define NVBLASTTKFRAMEWORK_H
+00031 
+00032 
+00033 #include "NvBlastTkType.h"
+00034 #include "NvBlastTkEvent.h"
 00035 
-00036 
-00037 namespace Nv
-00038 {
-00039 namespace Blast
-00040 {
+00036 #include "NvBlastPreprocessor.h"
+00037 #include "NvBlastTypes.h"
+00038 
+00039 #include "PxVec3.h"
+00040 
 00041 
 00042 // Forward declarations
-00043 class TkObject;
-00044 class TkEventDispatcher;
-00045 class TkAsset;
-00046 struct TkGroupDesc;
-00047 class TkGroup;
-00048 class TkActor;
-00049 class TkJoint;
-00050 class TkSerializable;
-00051 class TkIdentifiable;
-00052 struct TkAssetJointDesc;
+00043 namespace physx
+00044 {
+00045 class PxTransform;
+00046 }
+00047 
+00048 
+00049 namespace Nv
+00050 {
+00051 namespace Blast
+00052 {
 00053 
-00054 
-00055 
-00061 struct TkFrameworkDesc
-00062 {
-00063     physx::PxErrorCallback*     errorCallback;      
-00064     physx::PxAllocatorCallback* allocatorCallback;  
-00065 };
+00054 // Forward declarations
+00055 class TkObject;
+00056 class TkEventDispatcher;
+00057 class TkAsset;
+00058 struct TkGroupDesc;
+00059 class TkGroup;
+00060 class TkActor;
+00061 class TkJoint;
+00062 class TkIdentifiable;
+00063 struct TkAssetJointDesc;
+00064 
+00065 
 00066 
-00067 
-00075 struct TkAssetDesc : public NvBlastAssetDesc
-00076 {
-00080     enum BondFlags
-00081     {
-00082         NoFlags = 0,
-00083 
-00091         BondJointed = (1 << 0)
-00092     };
-00093 
-00098     const uint8_t*  bondFlags;
-00099 
-00101     TkAssetDesc() : bondFlags(nullptr)
-00102     {
-00103         chunkCount = bondCount = 0;
-00104         chunkDescs = nullptr;
-00105         bondDescs = nullptr;
-00106     }
-00107 };
+00074 struct TkAssetDesc : public NvBlastAssetDesc
+00075 {
+00079     enum BondFlags
+00080     {
+00081         NoFlags = 0,
+00082 
+00090         BondJointed = (1 << 0)
+00091     };
+00092 
+00097     const uint8_t*  bondFlags;
+00098 
+00100     TkAssetDesc() : bondFlags(nullptr)
+00101     {
+00102         chunkCount = bondCount = 0;
+00103         chunkDescs = nullptr;
+00104         bondDescs = nullptr;
+00105     }
+00106 };
+00107 
 00108 
-00109 
-00115 struct TkActorDesc : public NvBlastActorDesc
-00116 {
-00117     const TkAsset* asset;   
-00118 
-00120     TkActorDesc(const TkAsset* inAsset = nullptr) : asset(inAsset)
-00121     {
-00122         uniformInitialBondHealth = uniformInitialLowerSupportChunkHealth = 1.0f;
-00123         initialBondHealths = initialSupportChunkHealths = nullptr;
-00124     }
-00125 };
+00114 struct TkActorDesc : public NvBlastActorDesc
+00115 {
+00116     const TkAsset* asset;   
+00117 
+00119     TkActorDesc(const TkAsset* inAsset = nullptr) : asset(inAsset)
+00120     {
+00121         uniformInitialBondHealth = uniformInitialLowerSupportChunkHealth = 1.0f;
+00122         initialBondHealths = initialSupportChunkHealths = nullptr;
+00123     }
+00124 };
+00125 
 00126 
-00127 
-00131 struct TkJointDesc
-00132 {
-00133     TkFamily*       families[2];        
-00134     uint32_t        chunkIndices[2];    
-00135     physx::PxVec3   attachPositions[2]; 
-00136 };
+00130 struct TkJointDesc
+00131 {
+00132     TkFamily*       families[2];        
+00133     uint32_t        chunkIndices[2];    
+00134     physx::PxVec3   attachPositions[2]; 
+00135 };
+00136 
 00137 
-00138 
-00142 struct TkTypeIndex
-00143 {
-00144     enum Enum
-00145     {
-00146         Asset = 0,  
-00147         Family,     
-00148         Group,      
-00149 
-00150         TypeCount
-00151     };
-00152 };
+00141 struct TkTypeIndex
+00142 {
+00143     enum Enum
+00144     {
+00145         Asset = 0,  
+00146         Family,     
+00147         Group,      
+00148 
+00149         TypeCount
+00150     };
+00151 };
+00152 
 00153 
-00154 
-00161 class TkFramework
-00162 {
-00163 public:
-00168     virtual void                        release() = 0;
-00169 
-00173     virtual physx::PxErrorCallback&     getErrorCallback() const = 0;
-00174 
-00178     virtual physx::PxAllocatorCallback& getAllocatorCallback() const = 0;
-00179 
-00184     virtual NvBlastLog                  getLogFn() const = 0;
-00185 
-00202     virtual TkSerializable*             deserialize(physx::general_PxIOStream2::PxFileBuf& stream) = 0;
-00203 
-00212     virtual const TkType*               getType(TkTypeIndex::Enum typeIndex) const = 0;
-00213 
-00221     virtual TkIdentifiable*             findObjectByID(const NvBlastID& id) const = 0;
-00222 
-00230     virtual uint32_t                    getObjectCount(const TkType& type) const = 0;
-00231 
-00242     virtual uint32_t                    getObjects(TkIdentifiable** buffer, uint32_t bufferSize, const TkType& type, uint32_t indexStart = 0) const = 0;
-00243 
-00245 
-00260     virtual bool                        reorderAssetDescChunks(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, NvBlastBondDesc* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = nullptr) const = 0;
-00261 
-00274     virtual bool                        ensureAssetExactSupportCoverage(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount) const = 0;
-00275 
-00283     virtual TkAsset*                    createAsset(const TkAssetDesc& desc) = 0;
+00160 class TkFramework
+00161 {
+00162 public:
+00167     virtual void            release() = 0;
+00168 
+00177     virtual const TkType*   getType(TkTypeIndex::Enum typeIndex) const = 0;
+00178 
+00186     virtual TkIdentifiable* findObjectByID(const NvBlastID& id) const = 0;
+00187 
+00195     virtual uint32_t        getObjectCount(const TkType& type) const = 0;
+00196 
+00207     virtual uint32_t        getObjects(TkIdentifiable** buffer, uint32_t bufferSize, const TkType& type, uint32_t indexStart = 0) const = 0;
+00208 
+00210 
+00226     virtual bool            reorderAssetDescChunks(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, NvBlastBondDesc* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = nullptr, bool keepBondNormalChunkOrder = false) const = 0;
+00227 
+00240     virtual bool            ensureAssetExactSupportCoverage(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount) const = 0;
+00241 
+00249     virtual TkAsset*        createAsset(const TkAssetDesc& desc) = 0;
+00250 
+00261     virtual TkAsset*        createAsset(const NvBlastAsset* assetLL, Nv::Blast::TkAssetJointDesc* jointDescs = nullptr, uint32_t jointDescCount = 0, bool ownsAsset = false) = 0;
+00262 
+00264 
+00273     virtual TkGroup*        createGroup(const TkGroupDesc& desc) = 0;
+00274 
+00276 
+00283     virtual TkActor*        createActor(const TkActorDesc& desc) = 0;
 00284 
-00295     virtual TkAsset*                    createAsset(const NvBlastAsset* assetLL, Nv::Blast::TkAssetJointDesc* jointDescs = nullptr, uint32_t jointDescCount = 0, bool ownsAsset = false) = 0;
-00296 
-00298 
-00307     virtual TkGroup*                    createGroup(const TkGroupDesc& desc) = 0;
-00308 
+00286 
+00298     virtual TkJoint*        createJoint(const TkJointDesc& desc)  = 0;
+00299 
+00300 protected:
+00304     virtual                 ~TkFramework() {}
+00305 };
+00306 
+00307 } // namespace Blast
+00308 } // namespace Nv
+00309 
 00310 
-00317     virtual TkActor*                    createActor(const TkActorDesc& desc) = 0;
-00318 
+00312 
+00318 NVBLAST_API Nv::Blast::TkFramework* NvBlastTkFrameworkCreate();
+00319 
 00320 
-00332     virtual TkJoint*                    createJoint(const TkJointDesc& desc)  = 0;
-00333 
-00334 protected:
-00338     virtual                             ~TkFramework() {}
-00339 };
-00340 
-00341 } // namespace Blast
-00342 } // namespace Nv
-00343 
-00344 
-00346 
-00354 NVBLAST_API Nv::Blast::TkFramework* NvBlastTkFrameworkCreate(const Nv::Blast::TkFrameworkDesc& desc);
-00355 
-00356 
-00362 NVBLAST_API Nv::Blast::TkFramework* NvBlastTkFrameworkGet();
-00363 
-00364 
-00365 #endif // ifndef NVBLASTTKFRAMEWORK_H
+00326 NVBLAST_API Nv::Blast::TkFramework* NvBlastTkFrameworkGet();
+00327 
+00328 
+00329 #endif // ifndef NVBLASTTKFRAMEWORK_H
 
- - @@ -49,24 +47,21 @@ - - - +
class  Nv::Blast::TkFramework
struct  Nv::Blast::TkFrameworkDesc
struct  Nv::Blast::TkJointDesc
struct  Nv::Blast::TkTypeIndex
namespace  physx
namespace  physx::general_PxIOStream2

Functions

Nv::Blast::TkFrameworkNvBlastTkFrameworkCreate (const Nv::Blast::TkFrameworkDesc &desc)
Nv::Blast::TkFrameworkNvBlastTkFrameworkCreate ()
Nv::Blast::TkFrameworkNvBlastTkFrameworkGet ()


Function Documentation

- +
- - + @@ -76,11 +71,6 @@

Create a new TkFramework. This creates a global singleton, and will fail if a TkFramework object already exists.

-

Parameters:
-
Nv::Blast::TkFramework* NvBlastTkFrameworkCreate (const Nv::Blast::TkFrameworkDesc desc  ) 
- -
[in] desc The descriptor used to create the new framework (see TkFrameworkDesc).
-
Returns:
the new TkFramework if successful, NULL otherwise.
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 ff1941d..b0a414f 100644 --- a/docs/api_docs/files/_nv_blast_tk_group_8h-source.html +++ b/docs/api_docs/files/_nv_blast_tk_group_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/toolkit/include/NvBlastTkGroup.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/toolkit/include/NvBlastTkGroup.h Source File @@ -19,73 +19,117 @@
-

sdk/toolkit/include/NvBlastTkGroup.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKGROUP_H
-00012 #define NVBLASTTKGROUP_H
-00013 
-00014 #include "NvBlastTkIdentifiable.h"
-00015 
-00016 
-00017 // Forward declarations
-00018 namespace physx
-00019 {
-00020 class PxTaskManager;
-00021 }
-00022 
-00023 
-00024 namespace Nv
-00025 {
-00026 namespace Blast
-00027 {
+

sdk/toolkit/include/NvBlastTkGroup.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
 00028 
-00029 // Forward declarations
-00030 class TkActor;
-00031 
-00032 
-00037 struct TkGroupDesc
+00029 #ifndef NVBLASTTKGROUP_H
+00030 #define NVBLASTTKGROUP_H
+00031 
+00032 #include "NvBlastTkIdentifiable.h"
+00033 
+00034 
+00035 namespace Nv
+00036 {
+00037 namespace Blast
 00038 {
-00039     physx::PxTaskManager* pxTaskManager;    
-00040 };
-00041 
+00039 
+00040 // Forward declarations
+00041 class TkActor;
 00042 
-00047 struct TkGroupStats
-00048 {
-00049     NvBlastTimers   timers;                 
-00050     uint32_t        processedActorsCount;   
-00051     int64_t         workerTime;             
-00052 };
+00043 
+00048 struct TkGroupDesc
+00049 {
+00050     uint32_t        workerCount;            
+00051 };
+00052 
 00053 
-00054 
-00065 class TkGroup : public TkIdentifiable
-00066 {
-00067 public:
-00075     virtual bool        addActor(TkActor& actor) = 0;
-00076 
-00082     virtual uint32_t    getActorCount() const = 0;
-00083 
-00093     virtual uint32_t    getActors(TkActor** buffer, uint32_t bufferSize, uint32_t indexStart = 0) const = 0;
-00094 
-00106     virtual bool        process() = 0;
-00107 
-00118     virtual bool        sync(bool block = true) = 0;
+00058 struct TkGroupStats
+00059 {
+00060     NvBlastTimers   timers;                 
+00061     uint32_t        processedActorsCount;   
+00062     int64_t         workerTime;             
+00063 };
+00064 
+00065 
+00074 class TkGroupWorker
+00075 {
+00076 public:
+00082     virtual void    process(uint32_t jobId) = 0;
+00083 };
+00084 
+00085 
+00101 class TkGroup : public TkIdentifiable
+00102 {
+00103 public:
+00111     virtual bool            addActor(TkActor& actor) = 0;
+00112 
+00118     virtual uint32_t        getActorCount() const = 0;
 00119 
-00126     virtual void        getStats(TkGroupStats& stats) const = 0;
-00127 };
-00128 
-00129 } // namespace Blast
-00130 } // namespace Nv
-00131 
-00132 
-00133 #endif // ifndef NVBLASTTKGROUP_H
+00129     virtual uint32_t        getActors(TkActor** buffer, uint32_t bufferSize, uint32_t indexStart = 0) const = 0;
+00130 
+00137     virtual uint32_t        startProcess() = 0;
+00138 
+00149     virtual bool            endProcess() = 0;
+00150 
+00154     virtual void            setWorkerCount(uint32_t workerCount) = 0;
+00155 
+00159     virtual uint32_t        getWorkerCount() const = 0;
+00160 
+00167     virtual TkGroupWorker*  acquireWorker() = 0;
+00168 
+00174     virtual void            returnWorker(TkGroupWorker*) = 0;
+00175 
+00179     virtual void            process();
+00180 
+00187     virtual void            getStats(TkGroupStats& stats) const = 0;
+00188 };
+00189 
+00190 } // namespace Blast
+00191 } // namespace Nv
+00192 
+00193 
+00194 NV_INLINE void Nv::Blast::TkGroup::process()
+00195 {
+00196     uint32_t jobCount = startProcess();
+00197     if (jobCount > 0)
+00198     {
+00199         TkGroupWorker* worker = acquireWorker();
+00200         for (uint32_t i = 0; i < jobCount; i++)
+00201         {
+00202             worker->process(i);
+00203         }
+00204         returnWorker(worker);
+00205     }
+00206     endProcess();
+00207 }
+00208 
+00209 
+00210 #endif // ifndef NVBLASTTKGROUP_H
 
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 2ec2c0e..a5876c5 100644 --- a/docs/api_docs/files/_nv_blast_tk_identifiable_8h-source.html +++ b/docs/api_docs/files/_nv_blast_tk_identifiable_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/toolkit/include/NvBlastTkIdentifiable.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/toolkit/include/NvBlastTkIdentifiable.h Source File @@ -19,51 +19,71 @@
-

sdk/toolkit/include/NvBlastTkIdentifiable.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKIDENTIFIABLE_H
-00012 #define NVBLASTTKIDENTIFIABLE_H
-00013 
-00014 
-00015 #include "NvBlastTkObject.h"
-00016 
-00017 #include "NvBlastTypes.h"
-00018 
-00019 
-00020 namespace Nv
-00021 {
-00022 namespace Blast
-00023 {
-00024 
-00025 // Forward declarations
-00026 class TkType;
+

sdk/toolkit/include/NvBlastTkIdentifiable.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
 00027 
 00028 
-00032 class TkIdentifiable : public TkObject
-00033 {
-00034 public:
-00035     // Identifiable API
+00029 #ifndef NVBLASTTKIDENTIFIABLE_H
+00030 #define NVBLASTTKIDENTIFIABLE_H
+00031 
+00032 
+00033 #include "NvBlastTkObject.h"
+00034 
+00035 #include "NvBlastTypes.h"
 00036 
-00042     virtual const NvBlastID&    getID() const = 0;
-00043 
-00047     virtual void                setID(const NvBlastID& id) = 0;
-00048 
-00054     virtual const TkType&       getType() const = 0;
-00055 };
-00056 
-00057 } // namespace Blast
-00058 } // namespace Nv
-00059 
-00060 
-00061 #endif // ifndef NVBLASTTKIDENTIFIABLE_H
+00037 
+00038 namespace Nv
+00039 {
+00040 namespace Blast
+00041 {
+00042 
+00043 // Forward declarations
+00044 class TkType;
+00045 
+00046 
+00050 class TkIdentifiable : public TkObject
+00051 {
+00052 public:
+00053     // Identifiable API
+00054 
+00060     virtual const NvBlastID&    getID() const = 0;
+00061 
+00065     virtual void                setID(const NvBlastID& id) = 0;
+00066 
+00072     virtual const TkType&       getType() const = 0;
+00073 
+00077     uint64_t    userIntData;
+00078 };
+00079 
+00080 } // namespace Blast
+00081 } // namespace Nv
+00082 
+00083 
+00084 #endif // ifndef NVBLASTTKIDENTIFIABLE_H
 
-

sdk/toolkit/include/NvBlastTkJoint.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKJOINT_H
-00012 #define NVBLASTTKJOINT_H
-00013 
-00014 #include "NvBlastTkObject.h"
-00015 
-00016 #include "PxVec3.h"
-00017 
-00018 
-00019 namespace Nv
-00020 {
-00021 namespace Blast
-00022 {
-00023 
-00027 struct TkJointData
-00028 {
-00029     TkActor*        actors[2];          
-00030     uint32_t        chunkIndices[2];    
-00031     physx::PxVec3   attachPositions[2]; 
-00032 };
+

sdk/toolkit/include/NvBlastTkJoint.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKJOINT_H
+00030 #define NVBLASTTKJOINT_H
+00031 
+00032 #include "NvBlastTkObject.h"
 00033 
-00034 
-00045 class TkJoint : public TkObject
+00034 #include "PxVec3.h"
+00035 
+00036 
+00037 namespace Nv
+00038 {
+00039 namespace Blast
+00040 {
+00041 
+00045 struct TkJointData
 00046 {
-00047 public:
-00053     virtual const TkJointData   getData() const = 0;
-00054 };
-00055 
-00056 } // namespace Blast
-00057 } // namespace Nv
-00058 
-00059 
-00060 #endif // ifndef NVBLASTTKJOINT_H
+00047     TkActor*        actors[2];          
+00048     uint32_t        chunkIndices[2];    
+00049     physx::PxVec3   attachPositions[2]; 
+00050 };
+00051 
+00052 
+00063 class TkJoint : public TkObject
+00064 {
+00065 public:
+00071     virtual const TkJointData   getData() const = 0;
+00072 };
+00073 
+00074 } // namespace Blast
+00075 } // namespace Nv
+00076 
+00077 
+00078 #endif // ifndef NVBLASTTKJOINT_H
 
-

sdk/toolkit/include/NvBlastTkObject.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKOBJECT_H
-00012 #define NVBLASTTKOBJECT_H
-00013 
-00014 
-00015 namespace Nv
-00016 {
-00017 namespace Blast
-00018 {
-00019 
-00023 class TkObject
-00024 {
-00025 public:
-00029     TkObject() : userData(nullptr) {}
-00030 
-00031     // Object API
+

sdk/toolkit/include/NvBlastTkObject.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKOBJECT_H
+00030 #define NVBLASTTKOBJECT_H
+00031 
 00032 
-00036     virtual void    release() = 0;
+00033 namespace Nv
+00034 {
+00035 namespace Blast
+00036 {
 00037 
-00038 protected:
-00042     virtual         ~TkObject() {}
-00043 
-00044 public:
-00045     // Data
-00046 
-00050     void*   userData;
-00051 };
-00052 
-00053 } // namespace Blast
-00054 } // namespace Nv
+00041 class TkObject
+00042 {
+00043 public:
+00047     TkObject() : userData(nullptr) {}
+00048 
+00049     // Object API
+00050 
+00054     virtual void    release() = 0;
 00055 
-00056 
-00057 #endif // ifndef NVBLASTTKOBJECT_H
+00056 protected:
+00060     virtual         ~TkObject() {}
+00061 
+00062 public:
+00063     // Data
+00064 
+00068     void*   userData;
+00069 };
+00070 
+00071 } // namespace Blast
+00072 } // namespace Nv
+00073 
+00074 
+00075 #endif // ifndef NVBLASTTKOBJECT_H
 
- - - - diff --git a/docs/api_docs/files/_nv_blast_tk_serializable_8h.html b/docs/api_docs/files/_nv_blast_tk_serializable_8h.html deleted file mode 100644 index 7d6e174..0000000 --- a/docs/api_docs/files/_nv_blast_tk_serializable_8h.html +++ /dev/null @@ -1,47 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/toolkit/include/NvBlastTkSerializable.h File Reference - - - - - - - -
-

sdk/toolkit/include/NvBlastTkSerializable.h File Reference

#include "NvBlastTkIdentifiable.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - -

Classes

class  Nv::Blast::TkSerializable

Namespaces

namespace  Nv
namespace  Nv::Blast
namespace  physx
namespace  physx::general_PxIOStream2
-

- - - - 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 976b0c8..d1685fe 100644 --- a/docs/api_docs/files/_nv_blast_tk_type_8h-source.html +++ b/docs/api_docs/files/_nv_blast_tk_type_8h-source.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: sdk/toolkit/include/NvBlastTkType.h Source File + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/toolkit/include/NvBlastTkType.h Source File @@ -19,46 +19,64 @@
-

sdk/toolkit/include/NvBlastTkType.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTKTYPE_H
-00012 #define NVBLASTTKTYPE_H
-00013 
-00014 #include "NvBlastTypes.h"
-00015 
-00016 
-00017 
-00018 namespace Nv
-00019 {
-00020 namespace Blast
-00021 {
-00022 
-00028 class TkType
-00029 {
-00030 public:
-00036     virtual const char* getName() const = 0;
-00037 
-00045     virtual uint32_t    getVersion() const = 0;
-00046 
-00055     bool                operator == (const TkType& type) const
-00056     {
-00057         return &type == this;
-00058     }
-00059 };
-00060 
-00061 } // namespace Blast
-00062 } // namespace Nv
-00063 
+

sdk/toolkit/include/NvBlastTkType.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTKTYPE_H
+00030 #define NVBLASTTKTYPE_H
+00031 
+00032 #include "NvBlastTypes.h"
+00033 
+00034 
+00035 
+00036 namespace Nv
+00037 {
+00038 namespace Blast
+00039 {
+00040 
+00046 class TkType
+00047 {
+00048 public:
+00054     virtual const char* getName() const = 0;
+00055 
+00063     virtual uint32_t    getVersion() const = 0;
 00064 
-00065 #endif // ifndef NVBLASTTKTYPE_H
+00073     bool                operator == (const TkType& type) const
+00074     {
+00075         return &type == this;
+00076     }
+00077 };
+00078 
+00079 } // namespace Blast
+00080 } // namespace Nv
+00081 
+00082 
+00083 #endif // ifndef NVBLASTTKTYPE_H
 
-

sdk/lowlevel/include/NvBlastTypes.h

Go to the documentation of this file.
00001 /*
-00002 * Copyright (c) 2016-2017, NVIDIA CORPORATION.  All rights reserved.
-00003 *
-00004 * NVIDIA CORPORATION and its licensors retain all intellectual property
-00005 * and proprietary rights in and to this software, related documentation
-00006 * and any modifications thereto.  Any use, reproduction, disclosure or
-00007 * distribution of this software and related documentation without an express
-00008 * license agreement from NVIDIA CORPORATION is strictly prohibited.
-00009 */
-00010 
-00011 #ifndef NVBLASTTYPES_H
-00012 #define NVBLASTTYPES_H
-00013 
-00014 
-00015 #include "NvBlastPreprocessor.h"
-00016 #include <stdint.h>
-00017 
-00018 
-00020 //  NvBlast common types
-00023 
-00027 struct NvBlastMessage
-00028 {
-00029     enum Type
-00030     {
-00031         Error,      
-00032         Warning,    
-00033         Info,       
-00034         Debug       
-00035     };
-00036 };
-00037 
-00038 
-00045 typedef void(*NvBlastLog)(int type, const char* msg, const char* file, int line);
-00046 
-00047 
-00051 struct NvBlastID
-00052 {
-00053     char data[16];
+

sdk/lowlevel/include/NvBlastTypes.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2016-2017 NVIDIA Corporation. All rights reserved.
+00027 
+00028 
+00029 #ifndef NVBLASTTYPES_H
+00030 #define NVBLASTTYPES_H
+00031 
+00032 
+00033 #include "NvBlastPreprocessor.h"
+00034 #include <stdint.h>
+00035 
+00036 
+00038 //  NvBlast common types
+00041 
+00045 struct NvBlastMessage
+00046 {
+00047     enum Type
+00048     {
+00049         Error,      
+00050         Warning,    
+00051         Info,       
+00052         Debug       
+00053     };
 00054 };
 00055 
 00056 
-00067 struct NvBlastTimers
-00068 {
-00069     int64_t  material;      
-00070     int64_t  fracture;      
-00071     int64_t  island;        
-00072     int64_t  partition;     
-00073     int64_t  visibility;    
-00074 };
-00075 
-00076 
-00080 struct NvBlastDataBlock
-00081 {
-00085     enum Type
-00086     {
-00087         AssetDataBlock,
-00088         FamilyDataBlock,
-00089 
-00090         Count
-00091     };
-00092 
+00063 typedef void(*NvBlastLog)(int type, const char* msg, const char* file, int line);
+00064 
+00065 
+00069 struct NvBlastID
+00070 {
+00071     char data[16];
+00072 };
+00073 
+00074 
+00085 struct NvBlastTimers
+00086 {
+00087     int64_t  material;      
+00088     int64_t  fracture;      
+00089     int64_t  island;        
+00090     int64_t  partition;     
+00091     int64_t  visibility;    
+00092 };
 00093 
-00097     uint32_t    dataType;
-00098 
-00103     uint32_t    formatVersion;
-00104 
-00110     uint32_t    size;
+00094 
+00098 struct NvBlastDataBlock
+00099 {
+00103     enum Type
+00104     {
+00105         AssetDataBlock,
+00106         FamilyDataBlock,
+00107 
+00108         Count
+00109     };
+00110 
 00111 
-00115     uint32_t    reserved;
-00116 };
-00117 
-00119 
-00120 
-00122 //  NvBlastAsset related types
-00125 
-00126 
-00130 struct NvBlastAssetDataFormat
-00131 {
-00132     enum Version
-00133     {
-00135         Initial,
-00136 
-00137         //  New formats must come before Count.  They should be given descriptive names with more information in comments.
+00115     uint32_t    dataType;
+00116 
+00121     uint32_t    formatVersion;
+00122 
+00128     uint32_t    size;
+00129 
+00133     uint32_t    reserved;
+00134 };
+00135 
+00137 
 00138 
-00140         Count,
-00141 
-00143         Current = Count - 1
-00144     };
-00145 };
-00146 
-00147 
-00156 struct NvBlastChunk
-00157 {
-00161     float       centroid[3];
-00162 
-00166     float       volume;
-00167 
-00171     uint32_t    parentChunkIndex;
-00172 
-00176     uint32_t    firstChildIndex;
-00177 
-00181     uint32_t    childIndexStop;
-00182 
-00186     uint32_t    userData;
-00187 };
-00188 
-00189 
-00195 struct NvBlastBond
-00196 {
-00200     float       normal[3];
-00201 
-00205     float       area;
-00206 
-00210     float       centroid[3];
+00140 //  NvBlastAsset related types
+00143 
+00152 struct NvBlastChunk
+00153 {
+00157     float       centroid[3];
+00158 
+00162     float       volume;
+00163 
+00167     uint32_t    parentChunkIndex;
+00168 
+00172     uint32_t    firstChildIndex;
+00173 
+00177     uint32_t    childIndexStop;
+00178 
+00182     uint32_t    userData;
+00183 };
+00184 
+00185 
+00189 struct NvBlastBond
+00190 {
+00194     float       normal[3];
+00195 
+00199     float       area;
+00200 
+00204     float       centroid[3];
+00205 
+00209     uint32_t    userData;
+00210 };
 00211 
-00215     uint32_t    userData;
-00216 };
-00217 
-00218 
-00250 struct NvBlastSupportGraph
-00251 {
-00255     uint32_t    nodeCount;
-00256 
-00260     uint32_t*   chunkIndices;
-00261 
-00269     uint32_t*   adjacencyPartition;
-00270 
-00274     uint32_t*   adjacentNodeIndices;
+00212 
+00244 struct NvBlastSupportGraph
+00245 {
+00249     uint32_t    nodeCount;
+00250 
+00254     uint32_t*   chunkIndices;
+00255 
+00263     uint32_t*   adjacencyPartition;
+00264 
+00268     uint32_t*   adjacentNodeIndices;
+00269 
+00273     uint32_t*   adjacentBondIndices;
+00274 };
 00275 
-00279     uint32_t*   adjacentBondIndices;
-00280 };
-00281 
-00282 
-00292 struct NvBlastAsset {};
-00293 
-00294 
-00298 struct NvBlastChunkDesc
-00299 {
-00300     enum Flags
-00301     {
-00302         NoFlags = 0,
-00303 
-00305         SupportFlag = (1 << 0)
-00306     };
+00276 
+00286 struct NvBlastAsset {};
+00287 
+00288 
+00292 struct NvBlastChunkDesc
+00293 {
+00294     enum Flags
+00295     {
+00296         NoFlags = 0,
+00297 
+00299         SupportFlag = (1 << 0)
+00300     };
+00301 
+00303     float       centroid[3];
+00304 
+00306     float       volume;
 00307 
-00309     float       centroid[3];
+00309     uint32_t    parentChunkIndex;
 00310 
-00312     float       volume;
+00312     uint32_t    flags;
 00313 
-00315     uint32_t    parentChunkIndex;
-00316 
-00318     uint32_t    flags;
-00319 
-00321     uint32_t    userData;
-00322 };
-00323 
-00324 
-00328 struct NvBlastBondDesc
-00329 {
-00331     uint32_t    chunkIndices[2];
-00332 
-00334     NvBlastBond bond;
-00335 };
+00315     uint32_t    userData;
+00316 };
+00317 
+00318 
+00322 struct NvBlastBondDesc
+00323 {
+00325     NvBlastBond bond;
+00326 
+00333     uint32_t    chunkIndices[2];
+00334 };
+00335 
 00336 
-00337 
-00346 struct NvBlastAssetDesc
-00347 {
-00349     uint32_t                chunkCount;
-00350 
-00352     const NvBlastChunkDesc* chunkDescs;
-00353 
-00355     uint32_t                bondCount;
-00356 
-00358     const NvBlastBondDesc*  bondDescs;
-00359 };
-00360 
+00345 struct NvBlastAssetDesc
+00346 {
+00348     uint32_t                chunkCount;
+00349 
+00351     const NvBlastChunkDesc* chunkDescs;
+00352 
+00354     uint32_t                bondCount;
+00355 
+00357     const NvBlastBondDesc*  bondDescs;
+00358 };
+00359 
+00361 
 00362 
-00363 
-00365 //  NvBlastActor related types
-00368 
-00369 
-00373 struct NvBlastFamilyDataFormat
-00374 {
-00375     enum Version
-00376     {
-00378         Initial,
-00379 
-00380         //  New formats must come before Count.  They should be given descriptive names with more information in comments.
-00381 
-00383         Count,
-00384 
-00386         Current = Count - 1
-00387     };
-00388 };
+00364 //  NvBlastActor related types
+00367 
+00376 struct NvBlastFamily {};
+00377 
+00378 
+00387 struct NvBlastActor {};
+00388 
 00389 
-00390 
-00399 struct NvBlastFamily {};
-00400 
+00395 struct NvBlastActorDesc
+00396 {
+00400     float           uniformInitialBondHealth;
 00401 
-00410 struct NvBlastActor {};
-00411 
+00406     const float*    initialBondHealths;
+00407 
+00411     float           uniformInitialLowerSupportChunkHealth;
 00412 
-00418 struct NvBlastActorDesc
-00419 {
-00423     float           uniformInitialBondHealth;
-00424 
-00429     const float*    initialBondHealths;
-00430 
-00434     float           uniformInitialLowerSupportChunkHealth;
-00435 
-00444     const float*    initialSupportChunkHealths;
-00445 };
+00421     const float*    initialSupportChunkHealths;
+00422 };
+00423 
+00425 
+00426 
+00428 //  Types used for damage and fracturing
+00431 
+00432 
+00439 struct NvBlastChunkFractureData
+00440 {
+00441     uint32_t    userdata;   
+00442     uint32_t    chunkIndex; 
+00443     float       health;     
+00444 };
+00445 
 00446 
-00448 
-00449 
-00451 //  Types used for damage and fracturing
-00454 
-00455 
-00462 struct NvBlastChunkFractureData
-00463 {
-00464     uint32_t    userdata;   
-00465     uint32_t    chunkIndex; 
-00466     float       health;     
-00467 };
-00468 
-00469 
-00476 struct NvBlastBondFractureData
-00477 {
-00478     uint32_t    userdata;   
-00479     uint32_t    nodeIndex0; 
-00480     uint32_t    nodeIndex1; 
-00481     float       health;     
-00482 };
-00483 
-00484 
-00491 struct NvBlastFractureBuffers
+00453 struct NvBlastBondFractureData
+00454 {
+00455     uint32_t    userdata;   
+00456     uint32_t    nodeIndex0; 
+00457     uint32_t    nodeIndex1; 
+00458     float       health;     
+00459 };
+00460 
+00461 
+00468 struct NvBlastFractureBuffers
+00469 {
+00470     uint32_t                    bondFractureCount;      
+00471     uint32_t                    chunkFractureCount;     
+00472     NvBlastBondFractureData*    bondFractures;          
+00473     NvBlastChunkFractureData*   chunkFractures;         
+00474 };
+00475 
+00476 
+00481 struct NvBlastActorSplitEvent
+00482 {
+00483     NvBlastActor*   deletedActor;   
+00484     NvBlastActor**  newActors;      
+00485 };
+00486 
+00487 
+00491 struct NvBlastGraphShaderActor
 00492 {
-00493     uint32_t                    bondFractureCount;      
-00494     uint32_t                    chunkFractureCount;     
-00495     NvBlastBondFractureData*    bondFractures;          
-00496     NvBlastChunkFractureData*   chunkFractures;         
-00497 };
-00498 
-00499 
-00504 struct NvBlastActorSplitEvent
-00505 {
-00506     NvBlastActor*   deletedActor;   
-00507     NvBlastActor**  newActors;      
-00508 };
-00509 
-00510 
-00514 struct NvBlastGraphShaderActor
-00515 {
-00516     uint32_t            firstGraphNodeIndex;    
-00517     const uint32_t*     graphNodeIndexLinks;    
-00518     const uint32_t*     chunkIndices;           
-00519     const uint32_t*     adjacencyPartition;     
-00520     const uint32_t*     adjacentNodeIndices;    
-00521     const uint32_t*     adjacentBondIndices;    
-00522     const NvBlastBond*  assetBonds;             
-00523     const float*        familyBondHealths;      
+00493     uint32_t            firstGraphNodeIndex;    
+00494     const uint32_t*     graphNodeIndexLinks;    
+00495     const uint32_t*     chunkIndices;           
+00496     const uint32_t*     adjacencyPartition;     
+00497     const uint32_t*     adjacentNodeIndices;    
+00498     const uint32_t*     adjacentBondIndices;    
+00499     const NvBlastBond*  assetBonds;             
+00500     const NvBlastChunk* assetChunks;            
+00501     const float*        familyBondHealths;      
+00502     const float*        supportChunkHealths;    
+00503 };
+00504 
+00505 
+00519 struct NvBlastProgramParams
+00520 {
+00521     const void* damageDescBuffer;   
+00522     uint32_t    damageDescCount;    
+00523     const void* material;           
 00524 };
 00525 
 00526 
-00540 struct NvBlastProgramParams
-00541 {
-00542     const void* damageDescBuffer;   
-00543     uint32_t    damageDescCount;    
-00544     const void* material;           
-00545 };
-00546 
-00547 
-00551 struct NvBlastSubgraphShaderActor
-00552 {
-00553     uint32_t            chunkIndex;     
-00554     const NvBlastChunk* assetChunks;    
-00555 };
-00556 
-00557 
-00583 typedef void(*NvBlastGraphShaderFunction)(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
-00584 
-00585 
-00611 typedef void(*NvBlastSubgraphShaderFunction)(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
-00612 
-00613 
-00622 struct NvBlastDamageProgram
-00623 {
-00624     NvBlastGraphShaderFunction      graphShaderFunction;
-00625     NvBlastSubgraphShaderFunction   subgraphShaderFunction;
-00626 };
-00627 
-00628 
-00630 
-00631 
-00632 #endif // ifndef NVBLASTTYPES_H
+00530 struct NvBlastSubgraphShaderActor
+00531 {
+00532     uint32_t            chunkIndex;     
+00533     const NvBlastChunk* assetChunks;    
+00534 };
+00535 
+00536 
+00562 typedef void(*NvBlastGraphShaderFunction)(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const NvBlastProgramParams* params);
+00563 
+00564 
+00590 typedef void(*NvBlastSubgraphShaderFunction)(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const NvBlastProgramParams* params);
+00591 
+00592 
+00601 struct NvBlastDamageProgram
+00602 {
+00603     NvBlastGraphShaderFunction      graphShaderFunction;
+00604     NvBlastSubgraphShaderFunction   subgraphShaderFunction;
+00605 };
+00606 
+00607 
+00609 
+00610 
+00611 #endif // ifndef NVBLASTTYPES_H
 
+ + + + diff --git a/docs/api_docs/files/_nv_c_types_8h.html b/docs/api_docs/files/_nv_c_types_8h.html new file mode 100644 index 0000000..1e45276 --- /dev/null +++ b/docs/api_docs/files/_nv_c_types_8h.html @@ -0,0 +1,63 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: sdk/lowlevel/include/NvCTypes.h File Reference + + + + + + + +
+

sdk/lowlevel/include/NvCTypes.h File Reference

#include "NvPreprocessor.h"
+#include <stdint.h>
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

struct  NvcBounds3
struct  NvcMat33
struct  NvcMat34
struct  NvcMat44
struct  NvcPlane
struct  NvcQuat
struct  NvcTransform
struct  NvcVec2
struct  NvcVec2i
struct  NvcVec3
struct  NvcVec3i
struct  NvcVec4
struct  NvcVec4i
+

+ + + + diff --git a/docs/api_docs/files/annotated.html b/docs/api_docs/files/annotated.html index 9a1c9e9..0564786 100644 --- a/docs/api_docs/files/annotated.html +++ b/docs/api_docs/files/annotated.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class List @@ -21,8 +21,12 @@

Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + @@ -34,8 +38,15 @@ + + + + + + + @@ -47,10 +58,17 @@ + + + + + + + @@ -66,17 +84,25 @@ + + + + + + + + + - @@ -86,21 +112,36 @@ + + - - + + + + + + + + + + + + + + + @@ -116,17 +157,17 @@ - + - + diff --git a/docs/api_docs/files/apex__importer_8txt.html b/docs/api_docs/files/apex__importer_8txt.html index 054d38d..e77c10d 100644 --- a/docs/api_docs/files/apex__importer_8txt.html +++ b/docs/api_docs/files/apex__importer_8txt.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: docs/_source/apex_importer.txt File Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/apex_importer.txt File Reference diff --git a/docs/api_docs/files/api__ext__users__guide_8txt.html b/docs/api_docs/files/api__ext__users__guide_8txt.html index 0776c94..8a76a9e 100644 --- a/docs/api_docs/files/api__ext__users__guide_8txt.html +++ b/docs/api_docs/files/api__ext__users__guide_8txt.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: docs/_source/api_ext_users_guide.txt File Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/api_ext_users_guide.txt File Reference diff --git a/docs/api_docs/files/api__globals__users__guide_8txt.html b/docs/api_docs/files/api__globals__users__guide_8txt.html new file mode 100644 index 0000000..b5976bc --- /dev/null +++ b/docs/api_docs/files/api__globals__users__guide_8txt.html @@ -0,0 +1,32 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/api_globals_users_guide.txt File Reference + + + + + + + +
+

docs/_source/api_globals_users_guide.txt File Reference

Nv::Blast::Allocator
Nv::Blast::AllocatorCallbackAbstract base class for an application defined memory allocator that can be used by toolkit (Tk) or any extension (Ext)
Nv::Blast::ApexImporter::ApexImporterConfig
Nv::Blast::ApexImporter::ApexImportTool
Nv::Blast::Array< T >
Nv::Blast::AuthoringResult
Nv::Blast::BlastBondGenerator
Nv::Blast::BondGenerationConfig
Nv::Blast::ChunkInfo
Nv::Blast::DList::DList::It
Nv::Blast::DListIt< IndexType >
Nv::Blast::Edge
Nv::Blast::ErrorCallbackUser defined interface class. Used by the library to emit debug information
Nv::Blast::ErrorCodeError codes
Nv::Blast::ExporterMeshData
Nv::Blast::ExtCustomProfiler
Nv::Blast::ExtForceMode
Nv::Blast::ExtGroupTaskManager
Nv::Blast::ExtImpactDamageManager
Nv::Blast::ExtImpactSettings
Nv::Blast::ExtProfileData
Nv::Blast::ExtPxActor
Nv::Blast::ExtPxActorDescTemplate
Nv::Blast::ExtPxAsset
Nv::Blast::ExtPxFamilyDesc
Nv::Blast::ExtPxListener
Nv::Blast::ExtPxManager
Nv::Blast::ExtPxObjectTypeID
Nv::Blast::ExtPxShapeDescTemplate
Nv::Blast::ExtPxSpawnSettings
Nv::Blast::ExtPxStressSolver
Nv::Blast::ExtPxSubchunk
Nv::Blast::ExtSerialization
Nv::Blast::ExtSerialization::ExtSerialization::BufferProvider
Nv::Blast::ExtSerialization::ExtSerialization::EncodingID
Nv::Blast::ExtStressSolver
Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer
Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine
Nv::Blast::ExtStressSolverSettings
Nv::Blast::ExtSync
Nv::Blast::ExtSyncEvent
Nv::Blast::FixedBoolArray
Nv::Blast::FixedPriorityQueue< Element, Comparator >
Nv::Blast::FractureTool
Nv::Blast::HashMap< Key, Value, HashFn >
Nv::Blast::HashSet< Key, HashFn >
Nv::Blast::IFbxFileReader
Nv::Blast::IMeshFileReader
Nv::Blast::IMeshFileWriter
Nv::Blast::IndexDLink< IndexType >
Nv::Blast::IndexDList< IndexType >
Nv::Blast::InlineArray< T, N >
Nv::Blast::IteratorBase< T >
Nv::Blast::JsonCollisionExporter
Nv::Blast::Less< A >
Nv::Blast::LListIt< IndexType >
Nv::Blast::LlObjectTypeID
Nv::Blast::Mesh
Nv::Blast::MeshCleaner
NvBlastActor
NvBlastActorDesc
NvBlastActorSplitEvent
NvBlastAsset
NvBlastAssetDataFormat
NvBlastAssetDesc
NvBlastBond
NvBlastBondDesc
NvBlastChunkFractureData
NvBlastDamageProgram
NvBlastDataBlock
NvBlastExtAssetUtilsBondDesc
NvBlastExtMaterial
NvBlastExtRadialDamageDesc
NvBlastExtSegmentRadialDamageDesc
NvBlastExtShearDamageDesc
NvBlastFamily
NvBlastFamilyDataFormat
NvBlastFractureBuffers
NvBlastGraphShaderActor
NvBlastID
NvBlastMessage
NvBlastProfilerDetail
NvBlastProgramParams
NvBlastSubgraphShaderActor
NvBlastSupportGraph
NvBlastTimers
NvcBounds3
NvcMat33
NvcMat34
NvcMat44
NvcPlane
NvcQuat
NvcTransform
NvcVec2
NvcVec2i
NvcVec3
NvcVec3i
NvcVec4
NvcVec4i
Nv::Blast::PlaneChunkIndexer
Nv::Blast::ProfilerCallback
Nv::Blast::ProfilerDetail
Nv::Blast::RandomGeneratorBase
Nv::Blast::SlicingConfiguration
Nv::Blast::Time
Nv::Blast::TkFractureCommands
Nv::Blast::TkFractureEvents
Nv::Blast::TkFramework
Nv::Blast::TkFrameworkDesc
Nv::Blast::TkGroup
Nv::Blast::TkGroupDesc
Nv::Blast::TkGroupStats
Nv::Blast::TkGroupWorker
Nv::Blast::TkIdentifiable
Nv::Blast::TkJoint
Nv::Blast::TkJointData
Nv::Blast::TkJointDesc
Nv::Blast::TkJointUpdateEvent
Nv::Blast::TkObject
Nv::Blast::TkSerializable
Nv::Blast::TkObjectTypeID
Nv::Blast::TkSplitEvent
Nv::Blast::TkType
Nv::Blast::TkTypeIndex
+ +
+
+ + + + diff --git a/docs/api_docs/files/api__hl__users__guide_8txt.html b/docs/api_docs/files/api__hl__users__guide_8txt.html index dd95c83..fbbaee0 100644 --- a/docs/api_docs/files/api__hl__users__guide_8txt.html +++ b/docs/api_docs/files/api__hl__users__guide_8txt.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: docs/_source/api_hl_users_guide.txt File Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/api_hl_users_guide.txt File Reference diff --git a/docs/api_docs/files/api__ll__users__guide_8txt.html b/docs/api_docs/files/api__ll__users__guide_8txt.html index 7ec5ff7..18cec95 100644 --- a/docs/api_docs/files/api__ll__users__guide_8txt.html +++ b/docs/api_docs/files/api__ll__users__guide_8txt.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: docs/_source/api_ll_users_guide.txt File Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/api_ll_users_guide.txt File Reference diff --git a/docs/api_docs/files/api__users__guide_8txt.html b/docs/api_docs/files/api__users__guide_8txt.html index b784bbd..0aec057 100644 --- a/docs/api_docs/files/api__users__guide_8txt.html +++ b/docs/api_docs/files/api__users__guide_8txt.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: docs/_source/api_users_guide.txt File Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/api_users_guide.txt File Reference diff --git a/docs/api_docs/files/authoring__tool_8txt.html b/docs/api_docs/files/authoring__tool_8txt.html index c1d23a1..a27df4e 100644 --- a/docs/api_docs/files/authoring__tool_8txt.html +++ b/docs/api_docs/files/authoring__tool_8txt.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: docs/_source/authoring_tool.txt File Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: docs/_source/authoring_tool.txt File Reference diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator-members.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator-members.html new file mode 100644 index 0000000..c011b33 --- /dev/null +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator-members.html @@ -0,0 +1,33 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + +
+

Nv::Blast::Allocator Member List

This is the complete list of members for Nv::Blast::Allocator, including all inherited members.

+ + + +
allocate(size_t size, const char *filename, int line)Nv::Blast::Allocator [inline]
Allocator(const char *=0)Nv::Blast::Allocator [inline]
deallocate(void *ptr)Nv::Blast::Allocator [inline]

+ + + + diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator.html new file mode 100644 index 0000000..012b30b --- /dev/null +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator.html @@ -0,0 +1,125 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::Allocator Class Reference + + + + + + + + +
+

Nv::Blast::Allocator Class Reference

#include <NvBlastAllocator.h> +

+ +

+List of all members. + + + + + + + + +

Public Member Functions

void * allocate (size_t size, const char *filename, int line)
 Allocator (const char *=0)
void deallocate (void *ptr)
+


Detailed Description

+Allocator uses global AllocatorCallback.

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
Nv::Blast::Allocator::Allocator (const char *  = 0  )  [inline]
+
+
+ +

+ +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void* Nv::Blast::Allocator::allocate (size_t  size,
const char *  filename,
int  line 
) [inline]
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
void Nv::Blast::Allocator::deallocate (void *  ptr  )  [inline]
+
+
+ +

+ +

+

+


The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback-members.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback-members.html new file mode 100644 index 0000000..04fb355 --- /dev/null +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback-members.html @@ -0,0 +1,33 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + +
+

Nv::Blast::AllocatorCallback Member List

This is the complete list of members for Nv::Blast::AllocatorCallback, including all inherited members.

+ + + +
allocate(size_t size, const char *typeName, const char *filename, int line)=0Nv::Blast::AllocatorCallback [pure virtual]
deallocate(void *ptr)=0Nv::Blast::AllocatorCallback [pure virtual]
~AllocatorCallback()Nv::Blast::AllocatorCallback [inline, virtual]

+ + + + diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback.html new file mode 100644 index 0000000..c3fb049 --- /dev/null +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_allocator_callback.html @@ -0,0 +1,157 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::AllocatorCallback Class Reference + + + + + + + + +
+

Nv::Blast::AllocatorCallback Class Reference

Abstract base class for an application defined memory allocator that can be used by toolkit (Tk) or any extension (Ext). +More... +

+#include <NvBlastGlobals.h> +

+ +

+List of all members. + + + + + + + + + + + +

Public Member Functions

virtual void * allocate (size_t size, const char *typeName, const char *filename, int line)=0
 Allocates size bytes of memory, which must be 16-byte aligned.
virtual void deallocate (void *ptr)=0
 Frees memory previously allocated by allocate().
virtual ~AllocatorCallback ()
 destructor
+


Detailed Description

+Abstract base class for an application defined memory allocator that can be used by toolkit (Tk) or any extension (Ext).

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
virtual Nv::Blast::AllocatorCallback::~AllocatorCallback (  )  [inline, virtual]
+
+
+ +

+destructor +

+ +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void* Nv::Blast::AllocatorCallback::allocate (size_t  size,
const char *  typeName,
const char *  filename,
int  line 
) [pure virtual]
+
+
+ +

+Allocates size bytes of memory, which must be 16-byte aligned. +

+This method should never return NULL. If you run out of memory, then you should terminate the app or take some other appropriate action.

+

Parameters:
+ + + + + +
size Number of bytes to allocate.
typeName Name of the datatype that is being allocated
filename The source file which allocated the memory
line The source line which allocated the memory
+
+
Returns:
The allocated block of memory.
+ +
+

+ +

+
+ + + + + + + + + +
virtual void Nv::Blast::AllocatorCallback::deallocate (void *  ptr  )  [pure virtual]
+
+
+ +

+Frees memory previously allocated by allocate(). +

+

Parameters:
+ + +
ptr Memory to free.
+
+ +
+

+


The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool-members.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool-members.html index 7d01e2b..78233cd 100644 --- a/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool-members.html +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List @@ -21,9 +21,9 @@

Nv::Blast::ApexImporter::ApexImportTool Member List

This is the complete list of members for Nv::Blast::ApexImporter::ApexImportTool, including all inherited members.

- + - + @@ -31,7 +31,6 @@ - diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html index ec41150..a220d40 100644 --- a/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ApexImporter::ApexImportTool Class Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ApexImporter::ApexImportTool Class Reference @@ -29,9 +29,9 @@ List of all members.
ApexImportTool(NvBlastLog logFn=NULL)Nv::Blast::ApexImporter::ApexImportTool
ApexImportTool()Nv::Blast::ApexImporter::ApexImportTool
ApexImportTool(const ApexImportTool &)Nv::Blast::ApexImporter::ApexImportTool [protected]
getCollisionGeometry(const nvidia::apex::DestructibleAsset *apexAsset, uint32_t chunkCount, std::vector< uint32_t > &chunkReorderInvMap, const std::vector< uint32_t > &apexChunkFlags, std::vector< ExtPxAssetDesc::ChunkDesc > &physicsChunks, std::vector< ExtPxAssetDesc::SubchunkDesc > &physicsSubchunks)Nv::Blast::ApexImporter::ApexImportTool
getCollisionGeometry(const nvidia::apex::DestructibleAsset *apexAsset, uint32_t chunkCount, std::vector< uint32_t > &chunkReorderInvMap, const std::vector< uint32_t > &apexChunkFlags, std::vector< ExtPxAssetDesc::ChunkDesc > &physicsChunks, std::vector< ExtPxAssetDesc::SubchunkDesc > &physicsSubchunks, std::vector< std::vector< CollisionHull * > > &hullsDesc)Nv::Blast::ApexImporter::ApexImportTool
importApexAsset(std::vector< uint32_t > &chunkReorderInvMap, const nvidia::apex::DestructibleAsset *apexAsset, std::vector< NvBlastChunkDesc > &chunkDescriptors, std::vector< NvBlastBondDesc > &bondDescriptors, std::vector< uint32_t > &flags)Nv::Blast::ApexImporter::ApexImportTool
importApexAsset(std::vector< uint32_t > &chunkReorderInvMap, const nvidia::apex::DestructibleAsset *apexAsset, std::vector< NvBlastChunkDesc > &chunkDescriptors, std::vector< NvBlastBondDesc > &bondDescriptors, std::vector< uint32_t > &flags, const ApexImporterConfig &config)Nv::Blast::ApexImporter::ApexImportTool
initialize()Nv::Blast::ApexImporter::ApexImportTool
isValid()Nv::Blast::ApexImporter::ApexImportTool
loadAssetFromFile(nvidia::PxFileBuf *stream)Nv::Blast::ApexImporter::ApexImportTool
m_apexDestructionNv::Blast::ApexImporter::ApexImportTool
m_logNv::Blast::ApexImporter::ApexImportTool [protected]
operator=(const ApexImportTool &)Nv::Blast::ApexImporter::ApexImportTool [protected]
saveAsset(const NvBlastAsset *asset, nvidia::PxFileBuf *stream)Nv::Blast::ApexImporter::ApexImportTool
~ApexImportTool()Nv::Blast::ApexImporter::ApexImportTool
- + - + @@ -57,21 +57,17 @@ - - -

Public Member Functions

 ApexImportTool (NvBlastLog logFn=NULL)
 ApexImportTool ()
bool getCollisionGeometry (const nvidia::apex::DestructibleAsset *apexAsset, uint32_t chunkCount, std::vector< uint32_t > &chunkReorderInvMap, const std::vector< uint32_t > &apexChunkFlags, std::vector< ExtPxAssetDesc::ChunkDesc > &physicsChunks, std::vector< ExtPxAssetDesc::SubchunkDesc > &physicsSubchunks)
bool getCollisionGeometry (const nvidia::apex::DestructibleAsset *apexAsset, uint32_t chunkCount, std::vector< uint32_t > &chunkReorderInvMap, const std::vector< uint32_t > &apexChunkFlags, std::vector< ExtPxAssetDesc::ChunkDesc > &physicsChunks, std::vector< ExtPxAssetDesc::SubchunkDesc > &physicsSubchunks, std::vector< std::vector< CollisionHull * > > &hullsDesc)
bool importApexAsset (std::vector< uint32_t > &chunkReorderInvMap, const nvidia::apex::DestructibleAsset *apexAsset, std::vector< NvBlastChunkDesc > &chunkDescriptors, std::vector< NvBlastBondDesc > &bondDescriptors, std::vector< uint32_t > &flags, const ApexImporterConfig &config)
ApexImportTooloperator= (const ApexImportTool &)

Protected Attributes

NvBlastLog m_log


Detailed Description

ApexImportTool provides routines to create NvBlastAssets from APEX assets.

Constructor & Destructor Documentation

- +
- - + @@ -80,12 +76,7 @@

-Constructor should be provided with user defined allocator and massage function:

Parameters:
-
Nv::Blast::ApexImporter::ApexImportTool::ApexImportTool (NvBlastLog  logFn = NULL  ) 
- -
[in] logFn User - supplied message function(see NvBlastLog definition).May be NULL.
- - +Constructor should be provided with user defined allocator and massage function:

@@ -128,7 +119,7 @@ Constructor should be provided with user defined allocator and massage function:


Member Function Documentation

- +
@@ -166,7 +157,13 @@ Constructor should be provided with user defined allocator and massage function: - + + + + + + + @@ -186,6 +183,7 @@ Method creates collision geometry from user-supplied APEX Destructible asset. +
std::vector< ExtPxAssetDesc::SubchunkDesc > &  physicsSubchunks  physicsSubchunks,
std::vector< std::vector< CollisionHull * > > &  hullsDesc 
[in] apexChunkFlags Chunk flags array
[out] physicsChunks Chunk physics info output array
[out] physicsSubchunks Chunk collision geometry and transformation data output array
[out] hullsDescs Chunk collision geometry descriptors, can be used to save to some third party format
Returns:
If true - success, output arrays are filled.
@@ -485,21 +483,6 @@ Method serializes user-supplied

-

-

- -

- -
- -

-


The documentation for this class was generated from the following file: diff --git a/docs/api_docs/files/functions_0x6d.html b/docs/api_docs/files/functions_0x6d.html index 64a5bfa..34fe1b6 100644 --- a/docs/api_docs/files/functions_0x6d.html +++ b/docs/api_docs/files/functions_0x6d.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -72,46 +73,48 @@ Here is a list of all class members with links to the classes they belong to:
  • m_links : Nv::Blast::LListIt< IndexType > , Nv::Blast::DListIt< IndexType > -
  • m_log -: Nv::Blast::ApexImporter::ApexImportTool
  • material -: NvBlastTimers -, NvBlastProgramParams +: NvBlastProgramParams , Nv::Blast::ExtPxSpawnSettings +, NvBlastTimers +
  • materialCount +: Nv::Blast::AuthoringResult +
  • materialId +: Nv::Blast::Triangle +, Nv::Blast::TriangleIndexed +, Nv::Blast::Facet +
  • materialNames +: Nv::Blast::AuthoringResult +
  • maxDamageThreshold +: NvBlastExtMaterial +
  • maximum +: NvcBounds3
  • maxRadius : NvBlastExtRadialDamageDesc -
  • mChunkData -: Nv::Blast::FractureTool -
  • mChunkIdCounter -: Nv::Blast::FractureTool -
  • mChunkPostprocessors -: Nv::Blast::FractureTool +, NvBlastExtSegmentRadialDamageDesc +, NvBlastExtShearDamageDesc
  • MEDIUM -: NvBlastProfilerDetail -
  • Mesh() -: Nv::Blast::Mesh +: Nv::Blast::ProfilerDetail +
  • meshCount +: Nv::Blast::ExporterMeshData
  • meshData : Nv::Blast::ChunkInfo +
  • minDamageThreshold +: NvBlastExtMaterial
  • mIndexBase : Nv::Blast::CollisionHull::CollisionHull::HullPolygon +
  • minimum +: NvcBounds3
  • minRadius -: NvBlastExtRadialDamageDesc -
  • mLoggingCallback -: Nv::Blast::FractureTool +: NvBlastExtShearDamageDesc +, NvBlastExtRadialDamageDesc +, NvBlastExtSegmentRadialDamageDesc
  • mNbVerts : Nv::Blast::CollisionHull::CollisionHull::HullPolygon
  • MODE_COUNT : Nv::Blast::ApexImporter::ApexImporterConfig -
  • mOffset -: Nv::Blast::FractureTool
  • mPlane : Nv::Blast::CollisionHull::CollisionHull::HullPolygon -
  • mPlaneIndexerOffset -: Nv::Blast::FractureTool -
  • mRemoveIslands -: Nv::Blast::FractureTool -
  • mScaleFactor -: Nv::Blast::FractureTool diff --git a/docs/api_docs/files/functions_0x6e.html b/docs/api_docs/files/functions_0x6e.html index c788d70..6d9a01e 100644 --- a/docs/api_docs/files/functions_0x6e.html +++ b/docs/api_docs/files/functions_0x6e.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -65,6 +66,9 @@ Here is a list of all class members with links to the classes they belong to:

    - n -

    diff --git a/docs/api_docs/files/functions_0x6f.html b/docs/api_docs/files/functions_0x6f.html index d6505aa..38b39e9 100644 --- a/docs/api_docs/files/functions_0x6f.html +++ b/docs/api_docs/files/functions_0x6f.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • diff --git a/docs/api_docs/files/functions_0x70.html b/docs/api_docs/files/functions_0x70.html index e8c6416..59147f3 100644 --- a/docs/api_docs/files/functions_0x70.html +++ b/docs/api_docs/files/functions_0x70.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -65,11 +66,12 @@ Here is a list of all class members with links to the classes they belong to:

    - p -

    diff --git a/docs/api_docs/files/functions_0x71.html b/docs/api_docs/files/functions_0x71.html index cb14bf7..390bc9a 100644 --- a/docs/api_docs/files/functions_0x71.html +++ b/docs/api_docs/files/functions_0x71.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,6 +64,8 @@ Here is a list of all class members with links to the classes they belong to:

    - q -

    diff --git a/docs/api_docs/files/functions_0x72.html b/docs/api_docs/files/functions_0x72.html index 2519ff3..eb7ee9c 100644 --- a/docs/api_docs/files/functions_0x72.html +++ b/docs/api_docs/files/functions_0x72.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -64,24 +65,40 @@ Here is a list of all class members with links to the classes they belong to:

    - r -

    diff --git a/docs/api_docs/files/functions_0x73.html b/docs/api_docs/files/functions_0x73.html index 5ada531..cee09b4 100644 --- a/docs/api_docs/files/functions_0x73.html +++ b/docs/api_docs/files/functions_0x73.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -67,62 +68,87 @@ Here is a list of all class members with links to the classes they belong to: : Nv::Blast::Edge
  • saveAsset() : Nv::Blast::ApexImporter::ApexImportTool +
  • saveToFile() +: Nv::Blast::IMeshFileWriter
  • scene : Nv::Blast::ExtPxSpawnSettings
  • seconds() : Nv::Blast::Time
  • seed() : Nv::Blast::RandomGeneratorBase -
  • serialize() -: Nv::Blast::ExtPxAsset -, Nv::Blast::TkSerializable +
  • serializeIntoBuffer() +: Nv::Blast::ExtSerialization
  • set() : Nv::Blast::FixedBitmap , Nv::Blast::FixedBoolArray
  • setActorCountLimit() : Nv::Blast::ExtPxManager +
  • setAllNodesInfoFromLL() +: Nv::Blast::ExtStressSolver
  • setBaseMesh() -: Nv::Blast::VoronoiSitesGenerator +: Nv::Blast::VoronoiSitesGenerator +
  • setBufferProvider() +: Nv::Blast::ExtSerialization
  • setCreateJointFunction() : Nv::Blast::ExtPxManager
  • setDefaults() : Nv::Blast::ApexImporter::ApexImporterConfig +
  • setGroup() +: Nv::Blast::ExtGroupTaskManager
  • setID() : Nv::Blast::TkIdentifiable
  • setMaterial() -: Nv::Blast::TkFamily -, Nv::Blast::ExtPxFamily +: Nv::Blast::ExtPxFamily +, Nv::Blast::TkFamily +
  • setMaterialId() +: Nv::Blast::Mesh +
  • setNodeInfo() +: Nv::Blast::ExtStressSolver +
  • setPlatformEnabled() +: Nv::Blast::ExtCustomProfiler
  • setPxActorDesc() : Nv::Blast::ExtPxFamily
  • setPxShapeDescTemplate() : Nv::Blast::ExtPxFamily
  • setRemoveIslands() -: Nv::Blast::FractureTool +: Nv::Blast::FractureTool +
  • setSerializationEncoding() +: Nv::Blast::ExtSerialization
  • setSettings() : Nv::Blast::ExtImpactDamageManager , Nv::Blast::ExtStressSolver +
  • setSmoothingGroup() +: Nv::Blast::Mesh
  • setSourceMesh() -: Nv::Blast::FractureTool +: Nv::Blast::FractureTool
  • setStencil() -: Nv::Blast::VoronoiSitesGenerator -
  • shear -: NvBlastExtShearDamageDesc +: Nv::Blast::VoronoiSitesGenerator +
  • setUniformHealth() +: Nv::Blast::ExtPxAsset +
  • setWorkerCount() +: Nv::Blast::TkGroup +
  • shearDamage +: Nv::Blast::ExtImpactSettings
  • simulationFilterData : Nv::Blast::ExtPxShapeDescTemplate -
  • singleChunkThreshold -: NvBlastExtMaterial
  • size : NvBlastDataBlock , Nv::Blast::FixedArray< T > , Nv::Blast::FixedPriorityQueue< Element, Comparator > +
  • skipObject() +: Nv::Blast::ExtSerialization
  • slicing() -: Nv::Blast::FractureTool -
  • SlicingConfiguration() -: Nv::Blast::SlicingConfiguration +: Nv::Blast::FractureTool +
  • smoothingGroup +: Nv::Blast::Triangle +, Nv::Blast::TriangleIndexed +, Nv::Blast::Facet
  • spawn() : Nv::Blast::ExtPxFamily
  • Split : Nv::Blast::TkEvent +
  • startProcess() +: Nv::Blast::TkGroup
  • STRESS_GRAPH : Nv::Blast::ExtStressSolver
  • STRESS_GRAPH_BONDS_IMPULSES @@ -134,12 +160,18 @@ Here is a list of all class members with links to the classes they belong to:
  • stressLinearFactor : Nv::Blast::ExtStressSolverSettings
  • subchunkCount -: Nv::Blast::ExtPxChunk -, Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc +: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc +, Nv::Blast::ExtPxChunk
  • subchunks : Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
  • subgraphShaderFunction : NvBlastDamageProgram +
  • submeshCount +: Nv::Blast::ExporterMeshData +
  • submeshNames +: Nv::Blast::ExporterMeshData +
  • submeshOffsets +: Nv::Blast::ExporterMeshData
  • subscribe() : Nv::Blast::ExtPxManager , Nv::Blast::ExtPxFamily @@ -147,14 +179,14 @@ Here is a list of all class members with links to the classes they belong to: : Nv::Blast::TkJointUpdateEvent
  • Subtype : Nv::Blast::TkJointUpdateEvent +
  • supportChunkHealths +: NvBlastGraphShaderActor
  • SupportFlag : NvBlastChunkDesc
  • surfaceResolution : Nv::Blast::SlicingConfiguration -
  • sync() -: Nv::Blast::TkGroup
  • syncFamily() -: Nv::Blast::ExtSync +: Nv::Blast::ExtSync diff --git a/docs/api_docs/files/functions_0x74.html b/docs/api_docs/files/functions_0x74.html index 94b4fcf..8177738 100644 --- a/docs/api_docs/files/functions_0x74.html +++ b/docs/api_docs/files/functions_0x74.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,11 +64,11 @@ Here is a list of all class members with links to the classes they belong to:

    - t -

    diff --git a/docs/api_docs/files/functions_0x75.html b/docs/api_docs/files/functions_0x75.html index b90b0cb..0cb4e1d 100644 --- a/docs/api_docs/files/functions_0x75.html +++ b/docs/api_docs/files/functions_0x75.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -68,34 +69,39 @@ Here is a list of all class members with links to the classes they belong to:
  • uniformInitialLowerSupportChunkHealth : NvBlastActorDesc
  • uniformlyGenerateSitesInMesh() -: Nv::Blast::VoronoiSitesGenerator +: Nv::Blast::VoronoiSitesGenerator
  • Unreferenced : Nv::Blast::TkJointUpdateEvent
  • unsubscribe() : Nv::Blast::ExtPxFamily , Nv::Blast::ExtPxManager
  • update() -: Nv::Blast::ExtStressSolver -
  • userData -: Nv::Blast::TkObject -, Nv::Blast::Facet +: Nv::Blast::ExtStressSolver +, Nv::Blast::ExtPxStressSolver
  • userdata : NvBlastChunkFractureData -, NvBlastBondFractureData
  • userData -: NvBlastChunk -, Nv::Blast::ExtPxAsset -, Nv::Blast::ExtPxFamily +: NvBlastChunkDesc , NvBlastBond , Nv::Blast::TkActorData -, NvBlastChunkDesc -
  • userInfo -: Nv::Blast::TriangleIndexed -, Nv::Blast::Triangle +, Nv::Blast::ExtPxFamily +, Nv::Blast::Triangle +, Nv::Blast::Facet +, Nv::Blast::TriangleIndexed +
  • userdata +: NvBlastBondFractureData +
  • userData +: Nv::Blast::TkObject +, NvBlastChunk +, Nv::Blast::ExtPxAsset
  • userIntData -: Nv::Blast::TkSerializable +: Nv::Blast::TkIdentifiable
  • uv : Nv::Blast::Vertex +
  • uvs +: Nv::Blast::ExporterMeshData +
  • uvsCount +: Nv::Blast::ExporterMeshData diff --git a/docs/api_docs/files/functions_0x76.html b/docs/api_docs/files/functions_0x76.html index cffbb5d..3b8939e 100644 --- a/docs/api_docs/files/functions_0x76.html +++ b/docs/api_docs/files/functions_0x76.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -65,18 +66,15 @@ Here is a list of all class members with links to the classes they belong to:

    - v -

    diff --git a/docs/api_docs/files/functions_0x77.html b/docs/api_docs/files/functions_0x77.html index b325dba..75a269f 100644 --- a/docs/api_docs/files/functions_0x77.html +++ b/docs/api_docs/files/functions_0x77.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,10 +64,20 @@ Here is a list of all class members with links to the classes they belong to:

    - w -

    diff --git a/docs/api_docs/files/functions_0x78.html b/docs/api_docs/files/functions_0x78.html index fa98e21..4cba287 100644 --- a/docs/api_docs/files/functions_0x78.html +++ b/docs/api_docs/files/functions_0x78.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,6 +64,14 @@ Here is a list of all class members with links to the classes they belong to:

    - x -

    diff --git a/docs/api_docs/files/functions_0x79.html b/docs/api_docs/files/functions_0x79.html index d096e6d..f930453 100644 --- a/docs/api_docs/files/functions_0x79.html +++ b/docs/api_docs/files/functions_0x79.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,6 +64,14 @@ Here is a list of all class members with links to the classes they belong to:

    - y -

    diff --git a/docs/api_docs/files/functions_0x7a.html b/docs/api_docs/files/functions_0x7a.html index dcf6bbf..295176e 100644 --- a/docs/api_docs/files/functions_0x7a.html +++ b/docs/api_docs/files/functions_0x7a.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,8 +64,20 @@ Here is a list of all class members with links to the classes they belong to:

    - z -

    diff --git a/docs/api_docs/files/functions_0x7e.html b/docs/api_docs/files/functions_0x7e.html index 8e4b5f3..f52aa59 100644 --- a/docs/api_docs/files/functions_0x7e.html +++ b/docs/api_docs/files/functions_0x7e.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -63,16 +64,34 @@ Here is a list of all class members with links to the classes they belong to:

    - ~ -

    diff --git a/docs/api_docs/files/functions_enum.html b/docs/api_docs/files/functions_enum.html index ec758f3..4455725 100644 --- a/docs/api_docs/files/functions_enum.html +++ b/docs/api_docs/files/functions_enum.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Enumerations + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Enumerations @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -44,6 +45,12 @@
  • Enum : Nv::Blast::ExtSyncEventType , Nv::Blast::TkTypeIndex +, Nv::Blast::ErrorCode +, Nv::Blast::ExtForceMode +, Nv::Blast::TkObjectTypeID +, Nv::Blast::ExtSerialization::ExtSerialization::EncodingID +, Nv::Blast::ExtPxObjectTypeID +, Nv::Blast::LlObjectTypeID
  • FilterDataAttributes : Nv::Blast::ExtPxManager
  • Flags @@ -51,16 +58,13 @@
  • InterfaceSearchMode : Nv::Blast::ApexImporter::ApexImporterConfig
  • Level -: NvBlastProfilerDetail +: Nv::Blast::ProfilerDetail
  • Subtype : Nv::Blast::TkJointUpdateEvent
  • Type : NvBlastMessage , Nv::Blast::TkEvent , NvBlastDataBlock -
  • Version -: NvBlastAssetDataFormat -, NvBlastFamilyDataFormat diff --git a/docs/api_docs/files/functions_eval.html b/docs/api_docs/files/functions_eval.html index 2b16585..fc6e0ee 100644 --- a/docs/api_docs/files/functions_eval.html +++ b/docs/api_docs/files/functions_eval.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Enumerator + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Enumerator @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -49,6 +50,7 @@
  • s
  • t
  • u
  • +
  • v
  • w
  • @@ -57,7 +59,10 @@

    - a -

    - c -

    - d -

    - e -

    - f -

    - h -

    - i -

    - j -

    - m -

    @@ -156,6 +178,8 @@ : Nv::Blast::ExtSyncEventType

    - r -

    @@ -180,6 +204,10 @@
  • Unreferenced : Nv::Blast::TkJointUpdateEvent +

    - v -

    - w -

    • Warning : NvBlastMessage diff --git a/docs/api_docs/files/functions_func.html b/docs/api_docs/files/functions_func.html index 70f31ad..230a412 100644 --- a/docs/api_docs/files/functions_func.html +++ b/docs/api_docs/files/functions_func.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
    • All
    • Functions
    • Variables
    • +
    • Typedefs
    • Enumerations
    • Enumerator
    • Related Functions
    • @@ -39,8 +40,9 @@
    • f
    • g
    • i
    • +
    • j
    • l
    • -
    • m
    • +
    • n
    • o
    • p
    • r
    • @@ -48,6 +50,8 @@
    • t
    • u
    • v
    • +
    • w
    • +
    • z
    • ~
    @@ -57,29 +61,40 @@

    - a -

    diff --git a/docs/api_docs/files/functions_func_0x62.html b/docs/api_docs/files/functions_func_0x62.html index 399ac1d..bc07921 100644 --- a/docs/api_docs/files/functions_func_0x62.html +++ b/docs/api_docs/files/functions_func_0x62.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -55,16 +59,14 @@  

    - b -

    diff --git a/docs/api_docs/files/functions_func_0x63.html b/docs/api_docs/files/functions_func_0x63.html index 1674a3c..3c8e2a3 100644 --- a/docs/api_docs/files/functions_func_0x63.html +++ b/docs/api_docs/files/functions_func_0x63.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -55,39 +59,45 @@  

    - c -

    diff --git a/docs/api_docs/files/functions_func_0x64.html b/docs/api_docs/files/functions_func_0x64.html index 7d2f44a..94f6b86 100644 --- a/docs/api_docs/files/functions_func_0x64.html +++ b/docs/api_docs/files/functions_func_0x64.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -57,11 +61,15 @@

    - d -

    @@ -59,8 +63,12 @@ : Nv::Blast::Edge
  • empty() : Nv::Blast::FixedPriorityQueue< Element, Comparator > +
  • endProcess() +: Nv::Blast::TkGroup
  • ensureAssetExactSupportCoverage() : Nv::Blast::TkFramework +
  • ExtCustomProfiler() +: Nv::Blast::ExtCustomProfiler
  • ExtImpactSettings() : Nv::Blast::ExtImpactSettings
  • ExtStressSolverSettings() diff --git a/docs/api_docs/files/functions_func_0x66.html b/docs/api_docs/files/functions_func_0x66.html index ef70621..1e073c4 100644 --- a/docs/api_docs/files/functions_func_0x66.html +++ b/docs/api_docs/files/functions_func_0x66.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -56,16 +60,16 @@

    - f -

    diff --git a/docs/api_docs/files/functions_func_0x67.html b/docs/api_docs/files/functions_func_0x67.html index 42dcca8..161f3df 100644 --- a/docs/api_docs/files/functions_func_0x67.html +++ b/docs/api_docs/files/functions_func_0x67.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -57,12 +61,16 @@

    - g -

    diff --git a/docs/api_docs/files/functions_func_0x69.html b/docs/api_docs/files/functions_func_0x69.html index fce6136..66ca05a 100644 --- a/docs/api_docs/files/functions_func_0x69.html +++ b/docs/api_docs/files/functions_func_0x69.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -69,22 +73,28 @@ : Nv::Blast::IndexDList< IndexType >
  • insertTail() : Nv::Blast::DList +
  • isBoundToWorld() +: Nv::Blast::TkActor +
  • isCollisionLoaded() +: Nv::Blast::IMeshFileReader
  • isContainEdge() : Nv::Blast::TriangleIndexed
  • isEmpty() : Nv::Blast::DList
  • islandDetectionAndRemoving() -: Nv::Blast::FractureTool +: Nv::Blast::FractureTool +
  • isMeshContainOpenEdges() +: Nv::Blast::FractureTool
  • isPending() : Nv::Blast::TkActor
  • isPxUserDataUsed() : Nv::Blast::ExtPxManager
  • isSolitary() -: Nv::Blast::DList -, Nv::Blast::IndexDList< IndexType > +: Nv::Blast::IndexDList< IndexType > +, Nv::Blast::DList
  • isValid() -: Nv::Blast::ApexImporter::ApexImportTool -, Nv::Blast::Mesh +: Nv::Blast::Mesh +, Nv::Blast::ApexImporter::ApexImportTool
  • It() : Nv::Blast::DList::DList::It
  • IteratorBase() diff --git a/docs/api_docs/files/functions_func_0x6a.html b/docs/api_docs/files/functions_func_0x6a.html new file mode 100644 index 0000000..85e923d --- /dev/null +++ b/docs/api_docs/files/functions_func_0x6a.html @@ -0,0 +1,71 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions + + + + + + + + +
    + +
    +
    +  +

    +

    - j -

    +
    + + + + diff --git a/docs/api_docs/files/functions_func_0x6c.html b/docs/api_docs/files/functions_func_0x6c.html index f6793e2..b5c078d 100644 --- a/docs/api_docs/files/functions_func_0x6c.html +++ b/docs/api_docs/files/functions_func_0x6c.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -59,6 +63,8 @@ : Nv::Blast::LListIt< IndexType >
  • loadAssetFromFile() : Nv::Blast::ApexImporter::ApexImportTool +
  • loadFromFile() +: Nv::Blast::IMeshFileReader diff --git a/docs/api_docs/files/functions_func_0x6d.html b/docs/api_docs/files/functions_func_0x6d.html deleted file mode 100644 index d7203b6..0000000 --- a/docs/api_docs/files/functions_func_0x6d.html +++ /dev/null @@ -1,67 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions - - - - - - - - -
    - -
    -
    -  -

    -

    - m -

    -
    - - - - diff --git a/docs/api_docs/files/functions_func_0x6e.html b/docs/api_docs/files/functions_func_0x6e.html new file mode 100644 index 0000000..95ae7f6 --- /dev/null +++ b/docs/api_docs/files/functions_func_0x6e.html @@ -0,0 +1,75 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions + + + + + + + + +
    + +
    +
    +  +

    +

    - n -

    +
    + + + + diff --git a/docs/api_docs/files/functions_func_0x6f.html b/docs/api_docs/files/functions_func_0x6f.html index ee0253a..f43643f 100644 --- a/docs/api_docs/files/functions_func_0x6f.html +++ b/docs/api_docs/files/functions_func_0x6f.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • diff --git a/docs/api_docs/files/functions_func_0x70.html b/docs/api_docs/files/functions_func_0x70.html index ea785f6..1cfa048 100644 --- a/docs/api_docs/files/functions_func_0x70.html +++ b/docs/api_docs/files/functions_func_0x70.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -57,6 +61,8 @@

    - p -

    @@ -56,24 +60,38 @@

    - r -

    diff --git a/docs/api_docs/files/functions_func_0x73.html b/docs/api_docs/files/functions_func_0x73.html index 76bd3cc..8b13c43 100644 --- a/docs/api_docs/files/functions_func_0x73.html +++ b/docs/api_docs/files/functions_func_0x73.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -57,56 +61,77 @@

    - s -

    diff --git a/docs/api_docs/files/functions_func_0x74.html b/docs/api_docs/files/functions_func_0x74.html index 74e3bd1..3e60b83 100644 --- a/docs/api_docs/files/functions_func_0x74.html +++ b/docs/api_docs/files/functions_func_0x74.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -55,8 +59,6 @@  

    - t -

    diff --git a/docs/api_docs/files/functions_func_0x75.html b/docs/api_docs/files/functions_func_0x75.html index 93144d2..e23ee65 100644 --- a/docs/api_docs/files/functions_func_0x75.html +++ b/docs/api_docs/files/functions_func_0x75.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -56,12 +60,13 @@

    - u -

    diff --git a/docs/api_docs/files/functions_func_0x76.html b/docs/api_docs/files/functions_func_0x76.html index 931e32a..5438ec6 100644 --- a/docs/api_docs/files/functions_func_0x76.html +++ b/docs/api_docs/files/functions_func_0x76.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -58,9 +62,7 @@
  • valid() : Nv::Blast::FixedPriorityQueue< Element, Comparator >
  • voronoiFracturing() -: Nv::Blast::FractureTool -
  • VoronoiSitesGenerator() -: Nv::Blast::VoronoiSitesGenerator +: Nv::Blast::FractureTool diff --git a/docs/api_docs/files/functions_func_0x77.html b/docs/api_docs/files/functions_func_0x77.html new file mode 100644 index 0000000..4608d8c --- /dev/null +++ b/docs/api_docs/files/functions_func_0x77.html @@ -0,0 +1,73 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions + + + + + + + + +
    + +
    +
    +  +

    +

    - w -

    +
    + + + + diff --git a/docs/api_docs/files/functions_func_0x7a.html b/docs/api_docs/files/functions_func_0x7a.html new file mode 100644 index 0000000..27c1752 --- /dev/null +++ b/docs/api_docs/files/functions_func_0x7a.html @@ -0,0 +1,75 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions + + + + + + + + +
    + +
    + + + + + diff --git a/docs/api_docs/files/functions_func_0x7e.html b/docs/api_docs/files/functions_func_0x7e.html index fe37b27..525e6e6 100644 --- a/docs/api_docs/files/functions_func_0x7e.html +++ b/docs/api_docs/files/functions_func_0x7e.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -39,8 +40,9 @@
  • f
  • g
  • i
  • +
  • j
  • l
  • -
  • m
  • +
  • n
  • o
  • p
  • r
  • @@ -48,6 +50,8 @@
  • t
  • u
  • v
  • +
  • w
  • +
  • z
  • ~
  • @@ -55,16 +59,34 @@  

    - ~ -

    diff --git a/docs/api_docs/files/functions_rela.html b/docs/api_docs/files/functions_rela.html index 6f77796..5081c85 100644 --- a/docs/api_docs/files/functions_rela.html +++ b/docs/api_docs/files/functions_rela.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Related Functions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Related Functions @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • diff --git a/docs/api_docs/files/functions_type.html b/docs/api_docs/files/functions_type.html new file mode 100644 index 0000000..44a0f9e --- /dev/null +++ b/docs/api_docs/files/functions_type.html @@ -0,0 +1,49 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Typedefs + + + + + + + + + + + + + diff --git a/docs/api_docs/files/functions_vars.html b/docs/api_docs/files/functions_vars.html index b34d775..9322e2d 100644 --- a/docs/api_docs/files/functions_vars.html +++ b/docs/api_docs/files/functions_vars.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -64,7 +66,7 @@
  • a : Nv::Blast::Triangle
  • actorDesc -: Nv::Blast::ExtPxFamilyDesc +: Nv::Blast::ExtPxFamilyDesc
  • actorIndex : Nv::Blast::ExtSyncEventPhysicsSync::ExtSyncEventPhysicsSync::ActorData
  • actors @@ -78,22 +80,25 @@
  • adjacentNodeIndices : NvBlastSupportGraph , NvBlastGraphShaderActor -
  • allocatorCallback -: Nv::Blast::TkFrameworkDesc
  • angle_variations : Nv::Blast::SlicingConfiguration
  • area : NvBlastBond
  • asset : Nv::Blast::TkActorDesc +, Nv::Blast::AuthoringResult +, Nv::Blast::ExporterMeshData
  • assetBonds : NvBlastGraphShaderActor
  • assetChunks -: NvBlastSubgraphShaderActor +: NvBlastGraphShaderActor +, NvBlastSubgraphShaderActor +
  • assetToFractureChunkIdMap +: Nv::Blast::AuthoringResult
  • attachPositions : Nv::Blast::TkJointData -, Nv::Blast::TkAssetJointDesc , Nv::Blast::TkJointDesc +, Nv::Blast::TkAssetJointDesc diff --git a/docs/api_docs/files/functions_vars_0x62.html b/docs/api_docs/files/functions_vars_0x62.html index f47ac85..e0539e3 100644 --- a/docs/api_docs/files/functions_vars_0x62.html +++ b/docs/api_docs/files/functions_vars_0x62.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -67,27 +69,25 @@ : NvBlastBondDesc
  • bondCount : NvBlastAssetDesc +, Nv::Blast::AuthoringResult
  • bondDescs -: NvBlastAssetDesc +: Nv::Blast::AuthoringResult +, NvBlastAssetDesc
  • bondFlags : Nv::Blast::TkAssetDesc
  • bondFractureCount : NvBlastFractureBuffers
  • bondFractures -: NvBlastFractureBuffers -, Nv::Blast::ExtSyncEventFracture +: Nv::Blast::ExtSyncEventFracture +, NvBlastFractureBuffers
  • bondIterationsPerFrame : Nv::Blast::ExtStressSolverSettings
  • bondMode : Nv::Blast::BondGenerationConfig -
  • bondNormalThreshold -: NvBlastExtMaterial
  • bondsBroken : Nv::Blast::TkFractureEvents
  • bondsDamaged : Nv::Blast::TkFractureEvents -
  • bondTangentialThreshold -: NvBlastExtMaterial
  • buffers : Nv::Blast::TkFractureEvents , Nv::Blast::TkFractureCommands diff --git a/docs/api_docs/files/functions_vars_0x63.html b/docs/api_docs/files/functions_vars_0x63.html index 75c9eaf..27b18c1 100644 --- a/docs/api_docs/files/functions_vars_0x63.html +++ b/docs/api_docs/files/functions_vars_0x63.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -73,8 +75,10 @@ : Nv::Blast::TkSplitEvent
  • chunkCount : NvBlastAssetDesc +, Nv::Blast::AuthoringResult
  • chunkDescs -: NvBlastAssetDesc +: Nv::Blast::AuthoringResult +, NvBlastAssetDesc
  • chunkFractureCount : NvBlastFractureBuffers
  • chunkFractures @@ -84,20 +88,43 @@ : Nv::Blast::PlaneChunkIndexer , Nv::Blast::ChunkInfo
  • chunkIndex -: NvBlastSubgraphShaderActor -, NvBlastChunkFractureData +: NvBlastChunkFractureData +, NvBlastSubgraphShaderActor
  • chunkIndices : NvBlastSupportGraph , NvBlastBondDesc , NvBlastGraphShaderActor -, Nv::Blast::TkJointData , Nv::Blast::TkJointDesc +, Nv::Blast::TkJointData
  • chunksBroken : Nv::Blast::TkFractureEvents
  • chunksDamaged : Nv::Blast::TkFractureEvents -
  • compressive -: NvBlastExtRadialDamageDesc +
  • collisionHull +: Nv::Blast::AuthoringResult +
  • collisionHullOffset +: Nv::Blast::AuthoringResult +
  • color0 +: Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine +
  • color1 +: Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine +
  • column0 +: NvcMat33 +, NvcMat44 +, NvcMat34 +
  • column1 +: NvcMat34 +, NvcMat44 +, NvcMat33 +
  • column2 +: NvcMat44 +, NvcMat34 +, NvcMat33 +
  • column3 +: NvcMat44 +, NvcMat34 +
  • componentIndices +: NvBlastExtAssetUtilsBondDesc
  • contactOffset : Nv::Blast::ExtPxShapeDescTemplate diff --git a/docs/api_docs/files/functions_vars_0x64.html b/docs/api_docs/files/functions_vars_0x64.html index 69073c1..0c34845 100644 --- a/docs/api_docs/files/functions_vars_0x64.html +++ b/docs/api_docs/files/functions_vars_0x64.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -61,8 +63,14 @@  

    - d -

    diff --git a/docs/api_docs/files/functions_vars_0x66.html b/docs/api_docs/files/functions_vars_0x66.html index c6717f2..eaa0b5f 100644 --- a/docs/api_docs/files/functions_vars_0x66.html +++ b/docs/api_docs/files/functions_vars_0x66.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -79,15 +81,13 @@
  • firstSubchunkIndex : Nv::Blast::ExtPxChunk
  • flags -: Nv::Blast::ExtPxActorDescTemplate +: NvBlastChunkDesc , Nv::Blast::ExtPxShapeDescTemplate -, NvBlastChunkDesc +, Nv::Blast::ExtPxActorDescTemplate
  • formatVersion : NvBlastDataBlock
  • fracture : NvBlastTimers -
  • fragility -: Nv::Blast::ExtImpactSettings diff --git a/docs/api_docs/files/functions_vars_0x67.html b/docs/api_docs/files/functions_vars_0x67.html index c8ceba6..ad04a68 100644 --- a/docs/api_docs/files/functions_vars_0x67.html +++ b/docs/api_docs/files/functions_vars_0x67.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -62,10 +64,11 @@

    - g -

    diff --git a/docs/api_docs/files/functions_vars_0x74.html b/docs/api_docs/files/functions_vars_0x74.html index 42150a9..6bd7bd4 100644 --- a/docs/api_docs/files/functions_vars_0x74.html +++ b/docs/api_docs/files/functions_vars_0x74.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -61,17 +63,19 @@  

    - t -

    diff --git a/docs/api_docs/files/functions_vars_0x76.html b/docs/api_docs/files/functions_vars_0x76.html index 63d0ffe..d273cff 100644 --- a/docs/api_docs/files/functions_vars_0x76.html +++ b/docs/api_docs/files/functions_vars_0x76.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • diff --git a/docs/api_docs/files/functions_vars_0x77.html b/docs/api_docs/files/functions_vars_0x77.html index 6bc7e71..daaa450 100644 --- a/docs/api_docs/files/functions_vars_0x77.html +++ b/docs/api_docs/files/functions_vars_0x77.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -61,6 +63,12 @@  

    - w -

    diff --git a/docs/api_docs/files/functions_vars_0x78.html b/docs/api_docs/files/functions_vars_0x78.html index d52105d..02c3b60 100644 --- a/docs/api_docs/files/functions_vars_0x78.html +++ b/docs/api_docs/files/functions_vars_0x78.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -61,6 +63,14 @@  

    - x -

    diff --git a/docs/api_docs/files/functions_vars_0x79.html b/docs/api_docs/files/functions_vars_0x79.html index c966c77..cf60420 100644 --- a/docs/api_docs/files/functions_vars_0x79.html +++ b/docs/api_docs/files/functions_vars_0x79.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -61,6 +63,14 @@  

    - y -

    diff --git a/docs/api_docs/files/functions_vars_0x7a.html b/docs/api_docs/files/functions_vars_0x7a.html index 6f50630..492041f 100644 --- a/docs/api_docs/files/functions_vars_0x7a.html +++ b/docs/api_docs/files/functions_vars_0x7a.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members - Variables + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members - Variables @@ -24,6 +24,7 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • Enumerations
  • Enumerator
  • Related Functions
  • @@ -41,6 +42,7 @@
  • h
  • i
  • j
  • +
  • l
  • m
  • n
  • o
  • @@ -61,6 +63,12 @@  

    - z -

    diff --git a/docs/api_docs/files/globals.html b/docs/api_docs/files/globals.html index 6fa0fa3..a0b5f59 100644 --- a/docs/api_docs/files/globals.html +++ b/docs/api_docs/files/globals.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -30,7 +30,7 @@
    • _
    • -
    • d
    • +
    • m
    • n
    • p
    • s
    • @@ -43,19 +43,9 @@ Here is a list of all file members with links to the files they belong to:
    • _WIN32_WINNT : NvBlastIncludeWindows.h
    -

    - d -

    diff --git a/docs/api_docs/files/globals_defs.html b/docs/api_docs/files/globals_defs.html index 0ceb20e..67c7e0c 100644 --- a/docs/api_docs/files/globals_defs.html +++ b/docs/api_docs/files/globals_defs.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -30,8 +30,9 @@
    @@ -41,6 +42,10 @@
  • _WIN32_WINNT : NvBlastIncludeWindows.h +

    - m -

    - n -

    -

    - p -

  • diff --git a/docs/api_docs/files/globals_func.html b/docs/api_docs/files/globals_func.html index b7f3cff..ef50e8e 100644 --- a/docs/api_docs/files/globals_func.html +++ b/docs/api_docs/files/globals_func.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -29,28 +29,13 @@
     

    -

    - d -

    - n -

    -

    - s -

    diff --git a/docs/api_docs/files/globals_type.html b/docs/api_docs/files/globals_type.html index 8d4a08d..2cdd7af 100644 --- a/docs/api_docs/files/globals_type.html +++ b/docs/api_docs/files/globals_type.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members diff --git a/docs/api_docs/files/hierarchy.html b/docs/api_docs/files/hierarchy.html index 7b04cb8..ed1b706 100644 --- a/docs/api_docs/files/hierarchy.html +++ b/docs/api_docs/files/hierarchy.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Hierarchical Index + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Hierarchical Index @@ -21,8 +21,12 @@

    Class Hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically:
    -

    NVIDIA(R) Blast(R) SDK 1.0 API Reference Documentation

    +

    NVIDIA(R) Blast(R) SDK 1.1 API Reference Documentation

    • Main Page
    • User's Guide
    • diff --git a/docs/api_docs/files/namespace_nv.html b/docs/api_docs/files/namespace_nv.html index 7e74426..97eae9a 100644 --- a/docs/api_docs/files/namespace_nv.html +++ b/docs/api_docs/files/namespace_nv.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv Namespace Reference @@ -26,6 +26,12 @@ namespace  Blast +

      Detailed Description

      +FractureTool has requirements to input meshes to fracture them successfully: 1) Mesh should be closed (watertight) 2) There should not be self-intersections and open-edges. Mesh cleaner input is closed mesh with self-intersections and open-edges (only in the interior). It tries to track outer hull to make input mesh solid and meet requierements of FractureTool. If mesh contained some internal cavities they will be removed.

      +Blast serialization support for the ExtPhysX extension. Contains serializers which can be used by the ExtSerialization manager.

      +Blast High-level serialization support. Contains serializers which can be used by the ExtSerialization manager.

      +This file contains AllocatorCallback wrappers compatible with PxShared containers. +

    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    bool Nv::Blast::convertDataBlock (std::vector< char > &  outBlock,
    const std::vector< char > &  inBlock,
    uint32_t *  outBlockVersion = nullptr 
    )
    -
    -
    - -

    -Generic version conversion function for Blast data blocks.

    -Automatically determines block type (one of NvBlastDataBlock::Type) and uses appropriate converter.

    -

    Parameters:
    - - - - -
    [out] outBlock User-supplied memory block to fill with new data.
    [in] inBlock Data block to convert.
    [in] outBlockVersion Version to convert too, pass 'nullptr' to convert to the latest version.
    -
    -
    Returns:
    true iff conversion was successful.
    -

    @@ -446,65 +442,12 @@ count = lookup[i+1] - lookup[i]

    Note, if an index (i + indexBase) is not present in the data then, lookup[i+1] = lookup[i], so the count (above) will correctly be zero. In this case, the actual value of lookup[i] is irrelevant.

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NV_FORCE_INLINE uint32_t Nv::Blast::findNodeByPosition (const float  point[4],
    const uint32_t  graphNodesCount,
    const uint32_t *  graphNodeIndices,
    const NvBlastSupportGraph graph,
    const NvBlastBond bonds,
    const float *  bondHealths 
    )
    -
    -
    - -

    - -

    -

    - +

    - + @@ -513,13 +456,13 @@ Note, if an index (i + indexBase) is not present in the data then, lookup[i+1] = - + - + @@ -549,7 +492,13 @@ Note, if an index (i + indexBase) is not present in the data then, lookup[i+1] = - + + + + + + + @@ -561,15 +510,30 @@ Note, if an index (i + indexBase) is not present in the data then, lookup[i+1] =

    +Find the closest node to point in the graph. Uses primarily distance to bond centroids. Slower compared to chunk based lookup but may yield better accuracy in some cases. Bond normals are expected to be directed from the lower to higher node index. Cannot be used for graph actors with only the world chunk in the graph.

    +

    Parameters:
    +
    NV_FORCE_INLINE uint32_t Nv::Blast::findNodeByPosition NV_FORCE_INLINE uint32_t Nv::Blast::findClosestNode ( const float  point[4], const uint32_t  graphNodesCount, firstGraphNodeIndex,
    const uint32_t *  graphNodeIndices, familyGraphNodeIndexLinks,
    const float *  bondHealths  bondHealths,
    const uint32_t *  chunkIndices 
    + + + + + + + + + +
    [in] point the point to test against
    [in] firstGraphNodeIndex the entry point for familyGraphNodeIndexLinks
    [in] familyGraphNodeIndexLinks the list index links of the actor's graph
    [in] adjacencyPartition the actor's SupportGraph adjacency partition
    [in] adjacentNodeIndices the actor's SupportGraph adjacent node indices
    [in] adjacentBondIndices the actor's SupportGraph adjacent bond indices
    [in] assetBonds the actor's asset bonds
    [in] bondHealths the actor's bond healths
    [in] chunkIndices maps node index to chunk index in SupportGraph
    + +
    Returns:
    the index of the node closest to point

    - +

    - + @@ -608,174 +572,31 @@ Note, if an index (i + indexBase) is not present in the data then, lookup[i+1] = - + - - - - - - - -
    NV_FORCE_INLINE uint32_t Nv::Blast::findNodeByPositionLinked NV_FORCE_INLINE uint32_t Nv::Blast::findClosestNode ( const float  point[4], const NvBlastBond bonds, assetBonds,
    const float *  bondHealths 
    )
    -
    -
    - -

    - -

    -

    - -

    -
    - - - - - - + - - - - - - - - -
    Mesh* Nv::Blast::getBigBox (const physx::PxVec3 &  point, bondHealths,
    float  size 
    )
    -
    -
    - -

    -Create box at some particular position.

    Parameters:
    - - - -
    [in] point Cutting face center
    [in] size Cutting box size
    -
    - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Mesh* Nv::Blast::getCuttingBox (const physx::PxVec3 &  point,
    const physx::PxVec3 &  normal,
    float  size,
    int32_t  id 
    )
    -
    -
    - -

    -Create cutting box at some particular position.

    Parameters:
    - - - - - -
    [in] point Cutting face center
    [in] normal Cutting face normal
    [in] size Cutting box size
    [in] id Cutting box ID
    -
    - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + @@ -787,20 +608,23 @@ Create cutting box at some particular position.
    Parameters:

    -Create slicing box with noisy cutting surface.

    Parameters:
    +Find the closest node to point in the graph. Uses primarily distance to chunk centroids. Bond normals are expected to be directed from the lower to higher node index. Cannot be used for graph actors with only the world chunk in the graph.

    +

    Parameters:
    Mesh* Nv::Blast::getNoisyCuttingBoxPair (const physx::PxVec3 &  point,
    const physx::PxVec3 &  normal,
    float  size,
    float  jaggedPlaneSize, const NvBlastChunk assetChunks,
    uint32_t  resolution,
    int32_t  id,
    float  amplitude,
    float  frequency,
    int32_t  octaves, const float *  supportChunkHealths,
    int32_t  seed const uint32_t *  chunkIndices 
    - - - - - - - - - - + + + + + + + + + + +
    [in] point Cutting face center
    [in] normal Cutting face normal
    [in] size Cutting box size
    [in] jaggedPlaneSize Noisy surface size
    [in] resolution Noisy surface resolution
    [in] id Cutting box ID
    [in] amplitude Noise amplitude
    [in] frequency Noise frequency
    [in] octaves Noise octaves
    [in] seed Random generator seed, used for noise generation.
    [in] point the point to test against
    [in] firstGraphNodeIndex the entry point for familyGraphNodeIndexLinks
    [in] familyGraphNodeIndexLinks the list index links of the actor's graph
    [in] adjacencyPartition the actor's SupportGraph adjacency partition
    [in] adjacentNodeIndices the actor's SupportGraph adjacent node indices
    [in] adjacentBondIndices the actor's SupportGraph adjacent bond indices
    [in] assetBonds the actor's asset bonds
    [in] bondHealths the actor's bond healths
    [in] assetChunks the actor's asset chunks
    [in] supportChunkHealths the actor's graph chunks healths
    [in] chunkIndices maps node index to chunk index in SupportGraph
    +
    Returns:
    the index of the node closest to point

    @@ -823,41 +647,6 @@ template<typename T >

    Set to invalid index. - -

    - -

    -
    - - - - - - - - - - - - - - - - - - -
    void Nv::Blast::inverseNormalAndSetIndices (Mesh *  mesh,
    int32_t  id 
    )
    -
    -
    - -

    -Inverses normals of cutting box and sets indices.

    Parameters:
    - - - -
    [in] mesh Cutting box mesh
    [in] id Cutting box ID
    -
    -

    @@ -927,47 +716,58 @@ template<typename T > Test for invalid index (max representable integer).

    - +

    -
    -template<typename T >
    - + - - + + - - + + + + + + + + + + + + + + - +
    NV_INLINE const void * Nv::Blast::pointerOffset NV_INLINE void Nv::Blast::logLL (const void *  p, int  type,
    ptrdiff_t  offset const char *  msg,
    const char *  file,
    int  line 
    ) [inline]

    - +Logging wrapper compatible with NvBlastLog.

    See also:
    NvBlastLog.
    +Pass this function to LowLevel function calls in order to get logging into global ErrorCallback.

    - +

    template<typename T >
    - + - + @@ -986,63 +786,38 @@ template<typename T >

    -Offset void* pointer by 'offset' bytes helper-functions +

    - +

    +
    +template<typename T >
    NV_INLINE void * Nv::Blast::pointerOffset NV_INLINE const void * Nv::Blast::pointerOffset (void * const void *  p,
    - + - - - - - - - - - - - - - - - - - - - - + + - - + + - +
    void Nv::Blast::setCuttingBox NV_INLINE void * Nv::Blast::pointerOffset (const physx::PxVec3 &  point,
    const physx::PxVec3 &  normal,
    Mesh *  mesh,
    float  size, void *  p,
    int32_t  id ptrdiff_t  offset 
    ) [inline]

    -Helper functions Set cutting box at some particular position.

    Parameters:
    - - - - - - -
    [in] point Cutting face center
    [in] normal Cutting face normal
    [in] mesh Cutting box mesh
    [in] size Cutting box size
    [in] id Cutting box ID
    -
    - +Offset void* pointer by 'offset' bytes helper-functions

    diff --git a/docs/api_docs/files/namespace_nv_1_1_blast_1_1_apex_importer.html b/docs/api_docs/files/namespace_nv_1_1_blast_1_1_apex_importer.html index a728028..355de18 100644 --- a/docs/api_docs/files/namespace_nv_1_1_blast_1_1_apex_importer.html +++ b/docs/api_docs/files/namespace_nv_1_1_blast_1_1_apex_importer.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ApexImporter Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ApexImporter Namespace Reference diff --git a/docs/api_docs/files/namespace_nv_1_1_blast_1_1_vec_math.html b/docs/api_docs/files/namespace_nv_1_1_blast_1_1_vec_math.html index d6ce848..652dda6 100644 --- a/docs/api_docs/files/namespace_nv_1_1_blast_1_1_vec_math.html +++ b/docs/api_docs/files/namespace_nv_1_1_blast_1_1_vec_math.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::VecMath Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::VecMath Namespace Reference @@ -29,10 +29,14 @@ NV_INLINE void add (const float a[3], float b[3]) +NV_INLINE float dist (const float a[3], const float b[3]) + NV_INLINE void div (float a[3], float divisor) NV_INLINE float dot (const float a[3], const float b[3]) +NV_INLINE float length (const float a[3]) + NV_INLINE void mul (float a[3], float multiplier) NV_INLINE float normal (const float a[3], float r[3]) @@ -103,6 +107,35 @@

    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    NV_INLINE float Nv::Blast::VecMath::dist (const float  a[3],
    const float  b[3] 
    )
    +
    +
    + +

    +

    @@ -161,6 +194,26 @@

    + +

    + +

    +
    + + + + + + + + + +
    NV_INLINE float Nv::Blast::VecMath::length (const float  a[3]  ) 
    +
    +
    + +

    +

    diff --git a/docs/api_docs/files/namespacemembers.html b/docs/api_docs/files/namespacemembers.html index d208caf..4c38648 100644 --- a/docs/api_docs/files/namespacemembers.html +++ b/docs/api_docs/files/namespacemembers.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -38,10 +38,10 @@ Here is a list of all namespace members with links to the namespace documentatio : Nv::Blast

  • atomicIncrement() : Nv::Blast -
  • convertDataBlock() -: Nv::Blast
  • createIndexStartLookup() : Nv::Blast +
  • dist() +: Nv::Blast::VecMath
  • div() : Nv::Blast::VecMath
  • dot() @@ -50,32 +50,24 @@ Here is a list of all namespace members with links to the namespace documentatio : Nv::Blast
  • ExtPxCreateJointFunction : Nv::Blast -
  • findNodeByPosition() -: Nv::Blast -
  • findNodeByPositionLinked() -: Nv::Blast -
  • getBigBox() -: Nv::Blast -
  • getCuttingBox() -: Nv::Blast -
  • getNoisyCuttingBoxPair() -: Nv::Blast +
  • findClosestNode() +: Nv::Blast
  • invalidIndex() : Nv::Blast -
  • inverseNormalAndSetIndices() -: Nv::Blast
  • invertMap() : Nv::Blast
  • isInvalidIndex() : Nv::Blast +
  • length() +: Nv::Blast::VecMath +
  • logLL() +: Nv::Blast
  • mul() : Nv::Blast::VecMath
  • normal() : Nv::Blast::VecMath
  • pointerOffset() : Nv::Blast -
  • setCuttingBox() -: Nv::Blast
  • sub() : Nv::Blast::VecMath diff --git a/docs/api_docs/files/namespacemembers_func.html b/docs/api_docs/files/namespacemembers_func.html index f5d69ef..6ec7ae2 100644 --- a/docs/api_docs/files/namespacemembers_func.html +++ b/docs/api_docs/files/namespacemembers_func.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members @@ -38,40 +38,32 @@ : Nv::Blast
  • atomicIncrement() : Nv::Blast -
  • convertDataBlock() -: Nv::Blast
  • createIndexStartLookup() : Nv::Blast +
  • dist() +: Nv::Blast::VecMath
  • div() : Nv::Blast::VecMath
  • dot() : Nv::Blast::VecMath -
  • findNodeByPosition() -: Nv::Blast -
  • findNodeByPositionLinked() -: Nv::Blast -
  • getBigBox() -: Nv::Blast -
  • getCuttingBox() -: Nv::Blast -
  • getNoisyCuttingBoxPair() -: Nv::Blast +
  • findClosestNode() +: Nv::Blast
  • invalidIndex() : Nv::Blast -
  • inverseNormalAndSetIndices() -: Nv::Blast
  • invertMap() : Nv::Blast
  • isInvalidIndex() : Nv::Blast +
  • length() +: Nv::Blast::VecMath +
  • logLL() +: Nv::Blast
  • mul() : Nv::Blast::VecMath
  • normal() : Nv::Blast::VecMath
  • pointerOffset() : Nv::Blast -
  • setCuttingBox() -: Nv::Blast
  • sub() : Nv::Blast::VecMath diff --git a/docs/api_docs/files/namespacemembers_type.html b/docs/api_docs/files/namespacemembers_type.html index e312358..9586d86 100644 --- a/docs/api_docs/files/namespacemembers_type.html +++ b/docs/api_docs/files/namespacemembers_type.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Class Members + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Class Members diff --git a/docs/api_docs/files/namespacenvidia.html b/docs/api_docs/files/namespacenvidia.html index 52add2b..6d8bd17 100644 --- a/docs/api_docs/files/namespacenvidia.html +++ b/docs/api_docs/files/namespacenvidia.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: nvidia Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: nvidia Namespace Reference diff --git a/docs/api_docs/files/namespacenvidia_1_1apex.html b/docs/api_docs/files/namespacenvidia_1_1apex.html index e1dd54d..c69f979 100644 --- a/docs/api_docs/files/namespacenvidia_1_1apex.html +++ b/docs/api_docs/files/namespacenvidia_1_1apex.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: nvidia::apex Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: nvidia::apex Namespace Reference diff --git a/docs/api_docs/files/namespacephysx.html b/docs/api_docs/files/namespacephysx.html index aa632a9..46d0d6b 100644 --- a/docs/api_docs/files/namespacephysx.html +++ b/docs/api_docs/files/namespacephysx.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: physx Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: physx Namespace Reference diff --git a/docs/api_docs/files/namespacephysx_1_1general___px_i_o_stream2.html b/docs/api_docs/files/namespacephysx_1_1general___px_i_o_stream2.html index 221fe96..808fd7c 100644 --- a/docs/api_docs/files/namespacephysx_1_1general___px_i_o_stream2.html +++ b/docs/api_docs/files/namespacephysx_1_1general___px_i_o_stream2.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: physx::general_PxIOStream2 Namespace Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: physx::general_PxIOStream2 Namespace Reference diff --git a/docs/api_docs/files/namespaces.html b/docs/api_docs/files/namespaces.html index 4ce7ef8..ab54afd 100644 --- a/docs/api_docs/files/namespaces.html +++ b/docs/api_docs/files/namespaces.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Namespace Index + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Namespace Index diff --git a/docs/api_docs/files/pageauthoring.html b/docs/api_docs/files/pageauthoring.html index 20d1c00..8777b4e 100644 --- a/docs/api_docs/files/pageauthoring.html +++ b/docs/api_docs/files/pageauthoring.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: AuthoringTool + NVIDIA(R) Blast(R) SDK 1.1 API Reference: AuthoringTool diff --git a/docs/api_docs/files/pageconverter.html b/docs/api_docs/files/pageconverter.html index 18ac0a3..70c805c 100644 --- a/docs/api_docs/files/pageconverter.html +++ b/docs/api_docs/files/pageconverter.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: DataConverter + NVIDIA(R) Blast(R) SDK 1.1 API Reference: LegacyConverter @@ -20,38 +20,29 @@
    -

    DataConverter

    +

    LegacyConverter

     
     USAGE:
     
    -   DataConverter  -i <infile> -o <outfile> [-v <outversion>] [--]
    -                         [--version] [-h]
    +   LegacyConverter <infile> [-t <type>] [-o <outfile>] [-e <encoding>]
     
     Where:
     
    -   -i <infile>,  --infile <infile>
    -     (required)  Input binary file.
    +   <infile>  (required)  Input legacy format file.
     
    -   -o <outfile>,  --outfile <outfile>
    -     (required)  Output binary file.
    +   -t <type>
    +     (optional)  The file format of <infile>.  Must be one of: {llasset, tkasset, bpxa, pllasset, ptkasset, pbpxa} (case insensitive).
    +     If not given, the file extension of <infile> is used.
    +   
    +   -outfile <outfile>
    +     (optional)  Filename (including path) of the output converted file.
    +	 If not given, the filename <infile> is used, with extension (if it has one) changed to .blast.
     
    -   -v <outversion>,  --outversion <outversion>
    -     Output binary block version. Pass -1 or ignore this parameter to
    -     convert to latest version.
    -
    -   --,  --ignore_rest
    -     Ignores the rest of the labeled arguments following this flag.
    -
    -   --version
    -     Displays version information and exits.
    -
    -   -h,  --help
    -     Displays usage information and exits.
    +   -e <encoding>
    +     (optional)  Encoding to use for output file.  Must be one of: {cpnb, raw} (case insensitive).
    +	 If not given, cpnb (Cap'n Proto binary) is used.
     
     

    -Blast™ low-level and Tk libraries will only load data in the most current format. If your data is in an older format, you may use the Data Format Conversion Extension (NvBlastExtConverterLL) API to convert to the current format.

    -DataConverter.exe is a utility to convert Blast™ data from an older format into the current format. The data must be stored in a binary-format file with filename given as the <infile> parameter. It uses the Data Format Conversion Extension (NvBlastExtConverterLL) API to perform the conversion.

    -Currently, DataConverter only works on the low-level data formats for an asset (NvBlastAsset) and family (NvBlastFamily). The .blast files used by SampleAssetViewer (see Samples) may be converted using this tool.


    diff --git a/docs/api_docs/files/pagecopyrights.html b/docs/api_docs/files/pagecopyrights.html index 9e5af5c..ba85be5 100644 --- a/docs/api_docs/files/pagecopyrights.html +++ b/docs/api_docs/files/pagecopyrights.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Copyrights + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Copyrights @@ -47,6 +47,35 @@ 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.

    +
    +

    +Boost

    +Blast™ Asset Authoring (NvBlastExtAuthoring) uses Boost (boost.org). This is licensed as follows.

    +

    +Boost Software License - Version 1.0 - August 17th, 2003
    +
    +Permission is hereby granted, free of charge, to any person or organization
    +obtaining a copy of the software and accompanying documentation covered by
    +this license (the "Software") to use, reproduce, display, distribute,
    +execute, and transmit the Software, and to prepare derivative works of the
    +Software, and to permit third-parties to whom the Software is furnished to
    +do so, all subject to the following:
    +
    +The copyright notices in the Software and this entire statement, including
    +the above license grant, this restriction and the following disclaimer,
    +must be included in all copies of the Software, in whole or in part, and
    +all derivative works of the Software, unless such copies or derivative
    +works are solely in the form of machine-executable object code generated by
    +a source language processor.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
    +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
    +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +


    diff --git a/docs/api_docs/files/pagedefinitions.html b/docs/api_docs/files/pagedefinitions.html index a5360c3..f771b06 100644 --- a/docs/api_docs/files/pagedefinitions.html +++ b/docs/api_docs/files/pagedefinitions.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Definitions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Definitions diff --git a/docs/api_docs/files/pageextapeximport.html b/docs/api_docs/files/pageextapeximport.html deleted file mode 100644 index 903fb98..0000000 --- a/docs/api_docs/files/pageextapeximport.html +++ /dev/null @@ -1,40 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Apex Import (NvBlastExtApexImport) - - - - - -

    - -
    -

    Apex Import (NvBlastExtApexImport)

    Blast extensions provide Nv::Blast::ApexImporter::ApexImportTool, which can be used for converting APEX Destructible assets into Blast assets.

    -This tool supports two bond generation modes and can be configured by providing:

    struct ApexImporterConfig
    -{
    -    enum InterfaceSearchMode { EXACT, FORCED, MODE_COUNT };
    -    InterfaceSearchMode infSearchMode;
    -}
    -

    -1) EXACT - Importer tries to find triangles from two chunks which lay in common surface. If such triangles are found, their intersections are considered as the interface.

    -2) FORCED - Bond creation is forced no matter how far chunks from each other. Interface parameters are approximated.

    -Nv::Blast::ApexImporter::ApexImportTool can be itinialized by providing ApexSDK and ModuleDestructible, or they can be created internally.

    -If ApexSDK and ModuleDestructible were provided, they are not freed when Nv::Blast::ApexImporter::~ApexImportTool() is called.
    -

    - - - - diff --git a/docs/api_docs/files/pageextapi.html b/docs/api_docs/files/pageextapi.html index 1fc8564..d2da64d 100644 --- a/docs/api_docs/files/pageextapi.html +++ b/docs/api_docs/files/pageextapi.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Extensions (NvBlastExt) + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Extensions (NvBlastExt) @@ -22,15 +22,28 @@

    Extensions (NvBlastExt)

    These are the current Blast extensions:

    - Asset Authoring (NvBlastExtAuthoring)
    - Apex Import (NvBlastExtApexImport)
    - Serialization (NvBlastExtSerialization)
    - Data Format Conversion Extension (NvBlastExtConverterLL)
    - Damage Shaders (NvBlastExtShaders)
    - PhysX Extensions
    + Damage Shaders (NvBlastExtShaders) - Standard damage shaders (radial, shear, line segment) which can be used in NvBlast and NvBlastTk damage functions.
    +
    + Stress Solver Extension (NvBlastExtStress) - A toolkit for performing stress calculations on low-level Blast™ actors, using a minimal API to assign masses and apply forces. Does not use any external physics library.
    +
    + Asset Utilities (NvBlastExtAssetUtils) - NvBlastAsset utility functions. Add world bonds, merge assets, and transform geometric data.
    +
    + Asset Authoring (NvBlastExtAuthoring) - Powerful tools for cleaning and fracturing meshes using voronoi, clustered voronoi, and slicing methods.
    +
    + Importer (NvBlastExtImport) - Functions to import data from external formats and convert to a Blast™ asset. Currently handles APEX NvDestructibleAsset data.
    +
    + Exporter (NvBlastExtExporter) - Standard mesh and collision writer tools in fbx, obj, and json formats.
    +
    + Serialization (NvBlastExtSerialization) - Blast™ object serialization manager. With the ExtTkSerialization and ExtPxSerialization extensions, can serialize assets for low-level, Tk, and ExtPhysX libraries using a variety of encodings. This extension comes with low-level serializers built-in.
    +
    + BlastTk Serialization (NvBlastExtTkSerialization) - This module contains serializers for NvBlastTk objects. Use in conjunction with ExtSerialization.
    +
    + ExtPhysX Serialization (NvBlastExtPxSerialization) - This module contains serializers for ExtPhysX objects. Use in conjunction with ExtSerialization.
    +
    + PhysX Extensions (NvBlastExtPhysX) - A reference implementation of a physics manager, using the PhysX SDK. Creates and manages actors and joints, and handles impact damage and uses the stress solver (ExtStress) to handle stress calculations.
    +
    + To use them, include the appropriate headers in include/extensions (each extension will describe which headers are necessary), and link to the desired NvBlastExt*{config}{arch} library in the lib folder. Here, config is the usual DEBUG/CHECKED/PROFILE (or nothing for release), and {arch} distinguishes achitecture, if needed (such as _x86 or _x64).

    - To use them, include the appropriate headers in include/extensions (each extension will describe which headers are necessary), and link to the desired NvBlastExt*{config}{arch} library in the lib folder. Here, config is the usual DEBUG/CHECKED/PROFILE (or nothing for release), and {arch} distinguishes achitecture, if needed (such as _x86 or _x64).

    -

    -

    Asset Authoring (NvBlastExtAuthoring)

    Blast extensions provide tools for creation Blast asset from provided geometry mesh.

    +

    Asset Authoring (NvBlastExtAuthoring)

    The Authoring extension provides tools for creation of a Blast™ asset from a provided mesh.

    There are three tools for creation Blast asset.

    -First one is FractureTool which is used for fracturing input mesh. It supports Voronoi fracturing method and slicing. Internal surface of output chunks can be tesselated and noise can be applied to it. Slicing method supports slicing with noisy slicing surface, which makes possible creation of jagged slicing line. Noisy slicing is switched on by setting non-zero noise amplitude in slicing parameters.

    +First one is FractureTool (see NvBlastExtAuthoringFractureTool.h) which is used to fracture an input mesh. It supports Voronoi fracturing and also simple slicing. Internal surfaces of output chunks can be tesselated and noise can be applied to them. The slicing method supports slicing with a noisy slicing surface, which allows the creation of a jagged slicing line. Noisy slicing is switched on by setting a non-zero noise amplitude in slicing parameters (Nv::Blast::SlicingConfiguration).

    +
    +

    +FractureTool

    Nv::Blast::FractureTool supports two types of output:

    -1) Array of triangles - tool fills provided array with triangles of chunk, ID of chunk should be provided.

    +1) Array of triangles - the tool fills provided array with triangles of chunk, ID of chunk should be provided.

    2) Buffered output - tool fills provided array with vertices, and another array of arrays with indices. Indices form triplets of vertices of triangle.

    +
    +

    +ConvexMeshBuilder

    Nv::Blast::ConvexMeshBuilder is tool for creation collision geometry for physics engine. It recieves mesh vertices, and returns convex hull of that vertices. If creation of convex hull fails, tool creates collision geometry as a bounding box of provided vertices.

    Tool provides method to trim convex hulls against each other. It can be used along with noisy slicing to avoid "explosive" behavior due to penetration of neighboor collision hulls into each other. As a drawback penetration of render meshes into each other is possible due to trimmed collision geometry.

    -Nv::Blast::BlastBondGenerator tool for creation Blast Bond descriptors from provided geometry data. It has separate method which is optimized for working FractureTool.

        int32_t Nv::Blast::BlastBondGenerator::buildDescFromInternalFracture(FractureTool* tool, const std::vector<bool>& chunkIsSupport, std::vector<NvBlastBondDesc>& resultBondDescs, std::vector<NvBlastChunkDesc>& resultChunkDescriptors);
    +
    +

    +BondGenerator

    +Nv::Blast::BlastBondGenerator tool for creation Blast Bond descriptors from provided geometry data. It has separate method which is optimized for working FractureTool.
    int32_t Nv::Blast::BlastBondGenerator::buildDescFromInternalFracture(FractureTool* tool, const std::vector<bool>& chunkIsSupport, std::vector<NvBlastBondDesc>& resultBondDescs, std::vector<NvBlastChunkDesc>& resultChunkDescriptors);
     

    Other methods can work with prefractured mesh created in Third party tool, and can be used for converting prefractured models to Blast assets.

    Nv::Blast::BlastBondGenerator supports two modes of NvBlastBond data generation:

    1) Exact - in this mode exact common surface between chunks is found and considered as interface between them. Exact normal, area and centroid are computed.

    2) Average - this mode uses approximations of interface, and can be used for gathering NvBlastBond data for assets, where chunks penetrate each other, e.g. chunks with noise.

    +
    +

    +MeshCleaner

    +Nv::Blast::MeshCleaner can be used to remove self intersections and open edges in interior of mesh, making it more likely to fracture well.

    +To use it, create a MeshCleaner using

    +

    +Given an Nv::Blast::Mesh called "mesh," simply call

    +

    Nv::Blast::Mesh* newMesh = cleaner->cleanMesh(mesh);
    +

    +If successful, newMesh will be a valid pointer to the cleaned mesh. Otherwise, newMesh will be NULL.

    +When done, release using

    cleaner->release();
    +


    diff --git a/docs/api_docs/files/pageextconverterll.html b/docs/api_docs/files/pageextconverterll.html deleted file mode 100644 index 391973d..0000000 --- a/docs/api_docs/files/pageextconverterll.html +++ /dev/null @@ -1,51 +0,0 @@ - - - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Data Format Conversion Extension (NvBlastExtConverterLL) - - - - - - - -
    -

    Data Format Conversion Extension (NvBlastExtConverterLL)

    The low-level converter extension is a utility to convert NvBlastAsset and NvBlastFamily data from one format to another.

    -The format version of an asset may be obtained using the function

    -

    uint32_t assetVersion = NvBlastAssetGetFormatVersion(asset, logFn);
    -

    -and likewise the format version of a family may be obtained using the function

    -

    uint32_t familyVersion = NvBlastAssetGetFormatVersion(family, logFn);
    -

    -If the format version does not match the SDK's current version for one of these objects, the data may not be used with the current SDK. The NvBlastExtConverterLL extension will apply a chain of conversion functions to transform an asset or family from its stored version to any other version, provided that such a chain exists.

    -To apply it, simply use the function convertDataBlock. For example, given an asset pointer,

    -

    vector<char> inBlock, outBlock;
    -
    -inBlock.resize( NvBlastAssetGetSize(asset), logFn );
    -memcpy( inBlock.data(), asset, NvBlastAssetGetSize(asset) );
    -
    -if ( convertDataBlock(outBlock, inBlock) )
    -{
    -    NvBlastAsset* convertedAsset = outBlock.data();
    -
    -    // Use convertedAsset here
    -}
    -

    -
    -

    - - - - diff --git a/docs/api_docs/files/pageextexporter.html b/docs/api_docs/files/pageextexporter.html new file mode 100644 index 0000000..cac0205 --- /dev/null +++ b/docs/api_docs/files/pageextexporter.html @@ -0,0 +1,41 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Exporter (NvBlastExtExporter) + + + + + + + +
    +

    Exporter (NvBlastExtExporter)

    This extension provides both reader and writer tools for FBX and OBJ mesh formats. The file writers (IMeshFileWriter writer) use NvBlastMesh data to create a mesh hierarchy in the output file format that matches the Blast™ chunk hierarchy. The FBX writer is also capable of embedding collision data within the mesh. This data is stored in a second layer in the FBX scene, with node names that match the graphics mesh node names.

    +From NvBlastExtExporter.h:

    +

    +
    +

    + + + + diff --git a/docs/api_docs/files/pageextimport.html b/docs/api_docs/files/pageextimport.html new file mode 100644 index 0000000..783c516 --- /dev/null +++ b/docs/api_docs/files/pageextimport.html @@ -0,0 +1,41 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Importer (NvBlastExtImport) + + + + + + + +
    +

    Importer (NvBlastExtImport)

    This extension provides tools to import data from external formats and convert to a Blast™ asset.

    +Currently the only external data format handled is NvApexDestructibleAsset, handled by Nv::Blast::ApexImporter::ApexImportTool.

    +This tool supports two bond generation modes and can be configured by providing:

    struct ApexImporterConfig
    +{
    +    enum InterfaceSearchMode { EXACT, FORCED, MODE_COUNT };
    +    InterfaceSearchMode infSearchMode;
    +}
    +

    +1) EXACT - Importer tries to find triangles from two chunks which lay in common surface. If such triangles are found, their intersections are considered as the interface.

    +2) FORCED - Bond creation is forced no matter how far chunks from each other. Interface parameters are approximated.

    +Nv::Blast::ApexImporter::ApexImportTool can be itinialized by providing ApexSDK and ModuleDestructible, or they can be created internally.

    +If ApexSDK and ModuleDestructible were provided, they are not freed when Nv::Blast::ApexImporter::~ApexImportTool() is called.
    +

    + + + + diff --git a/docs/api_docs/files/pageextphysx.html b/docs/api_docs/files/pageextphysx.html index 0d0c366..b1ee6ba 100644 --- a/docs/api_docs/files/pageextphysx.html +++ b/docs/api_docs/files/pageextphysx.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: PhysX Extensions + NVIDIA(R) Blast(R) SDK 1.1 API Reference: PhysX Extensions (NvBlastExtPhysX) @@ -20,8 +20,8 @@
    -

    PhysX Extensions

    NvBlastExtPhysX contains extensions for easier use of Blast Toolkit with the PhysX SDK. There are 3 of them:
      -
    • ExtPxManager: Manager to keep Blast Actors in sync with PhysX actors.
    • ExtImpactDamageManager: Manager to collect and apply impact damage caused by collision in PhysX Scene.
    • ExtStressSolver: Stress Solver to propagate stress through support graph and apply it as damage to Blast actors.
    +

    PhysX Extensions (NvBlastExtPhysX)

    NvBlastExtPhysX contains classes for easier use of Blast Toolkit with the PhysX SDK. There are 3 of them:
      +
    • ExtPxManager: Manager to keep Blast Actors in sync with PhysX actors.
    • ExtImpactDamageManager: Manager to collect and apply impact damage caused by collision in PhysX Scene.
    • ExtPxStressSolver: Stress Solver to propagate stress through support graph and apply it as damage to Blast actors.

    This library also contains an extension for synchronizing Blast state:

    • ExtSync - Utility for writing Blast state to a buffer, to be read by a client. This may be used for networking, for example.
    @@ -30,7 +30,7 @@ This library also contains an extension for synchronizing Blast state:

      ExtPxManager

      Physics Manager - is a reference implementation for keeping Blast Actors synced with PhysX actors. It's main job is to listen for TkFamily events and update PxScene (by adding and removing PxActors) accordingly.

      -In order to use it create ExtPxManager:

      +In order to use it create an ExtPxManager. If we have a physx::PxPhysics object m_physics and a TkFramework m_tkFramework, use

      ExtPxManager* pxManager = ExtPxManager::create(m_physics, m_tkFramework);
       

      For every TkAsset prepare ExtPxAsset. Which contains TkAsset + collection of physics geometry for every chunk. Every chunk can contain any number of subchunks. Where each subchunk is basically PxConvexMeshGeometry with transform. Also every chunk can be marked as static (isStatic flag). If actor contains at least one static chunks in it's support graph it makes an actor kinematic (static), otherwise it's dynamic. Having zero subchunks makes chunk invisible in physics scene, it can be used for example to represent 'earth' as a special invisible static chunk and connect all near earth chunks to it.

      @@ -47,7 +47,7 @@ ExtPxFamily* family = pxManager->createFamily(desc); You can subscribe to family events in order to sync graphics (or anything else) with physics:

      family->subscribe(listener);
       

      -Listener will be notified with all physics actors added and removed.

      +The listener will be notified with all physics actors added and removed.

      And finally spawn the family in some world position (the first actor/actors will be created and event will be fired to the listener):

      ExtPxSpawnSettings spawnSettings = {
           &pxScene,
      @@ -55,24 +55,24 @@ And finally spawn the family in some world position (the first actor/actors will
           RIGIDBODY_DENSITY
       };
       
      -family->spawn(PxTransform(0, 0, 0), spawnSettings);
      +family->spawn(PxTransform(0, 0, 0), PxVec3(1, 1, 1), spawnSettings);
       

      You can get families actor's either from listening to events or by calling getActors(). Every ExtPxActor matches 1 <-> 1 with TkActor (which matches NvBlastActor accordingly).

      ExtPxActor* actor = ....; 
       physx::PxRigidDynamic rigidDynamic = actor->getPxActor(); // 
       

      -ExtPxActor remains internally unchanged through it's life time. Use ExtPxActor getChunkIndices() and getPxActor() to update graphics representation. Sample code:

      -

          const uint32_t* chunkIndices;
      -    size_t chunkIndexCount;
      -    actor.getChunkIndices(chunkIndices, chunkIndexCount);
      -    for (uint32_t i = 0; i < chunkIndexCount; i++)
      +An ExtPxActor remains internally unchanged through its lifetime. Use ExtPxActor getChunkIndices() and getPxActor() to update your graphics representation. Sample code:

      +

      const uint32_t* chunkIndices;
      +size_t chunkIndexCount;
      +actor.getChunkIndices(chunkIndices, chunkIndexCount);
      +for (uint32_t i = 0; i < chunkIndexCount; i++)
      +{
      +    uint32_t chunkIndex = chunkIndices[i];
      +    for (Renderable* r : m_chunks[chunkIndex].renderables)
           {
      -        uint32_t chunkIndex = chunkIndices[i];
      -        for (Renderable* r : m_chunks[chunkIndex].renderables)
      -        {
      -            r->setTransform(actor.getPxActor()->getGlobalPose() * pxAsset.chunks[chunkIndex].convexes[0].transform);
      -        }
      +        r->setTransform(actor.getPxActor()->getGlobalPose() * pxAsset.chunks[chunkIndex].convexes[0].transform);
           }
      +}
       

      In order to use joints set joint create function with ExtPxManager::setCreateJointFunction(...). It will be called when new TkJoint's are being created. All the joint updates and remove will be handled by manager internally.


      @@ -82,48 +82,47 @@ ExtImpactDamageManager In order to use it create it:

      ExtImpactDamageManager* impactManager = ExtImpactDamageManager::create(pxManager);
       

      -Call it's onContact method on every PxSimulationEventCallback onContact()

      -

          class EventCallback : public PxSimulationEventCallback
      -    {
      -    public:
      -        EventCallback(ExtImpactDamageManager* manager) : m_manager(manager) {}
      +Call its onContact method on every PxSimulationEventCallback onContact() 

      +

      class EventCallback : public PxSimulationEventCallback
      +{
      +public:
      +    EventCallback(ExtImpactDamageManager* manager) : m_manager(manager) {}
       
      -        virtual void onContact(const PxContactPairHeader& pairHeader, const PxContactPair* pairs, uint32_t nbPairs)
      -        {
      -            m_manager->onContact(pairHeader, pairs, nbPairs);
      -        }
      +    virtual void onContact(const PxContactPairHeader& pairHeader, const PxContactPair* pairs, uint32_t nbPairs)
      +    {
      +        m_manager->onContact(pairHeader, pairs, nbPairs);
      +    }
       
      -    private:
      -        ExtImpactDamageManager*     m_manager;
      -    };
      +private:
      +    ExtImpactDamageManager*     m_manager;
      +};
       

      Call applyDamage() when you want the buffered damage to be applied:

      impactManager->applyDamage();
       

      -Also important to enable contact notification with custom filter shader for PxScene. ImpactDamageManager has a reference filter shader implementation which can be used for that:

      +N.B. for impact damage to work, you must enable contact notification with custom the filter shader for PxScene. ExtImpactDamageManager has a reference filter shader implementation which can be used for that:

      PxSceneDesc sceneDesc;
       sceneDesc.filterShader = ExtImpactDamageManager::FilterShader;
       


      -

      -ExtStressSolver

      -Stress Solver - is a reference implementation of stress propagation using Blast support graph.

      -Features

      -
        -
      • Supports both static and dynamic actors
      • Propagates both linear and angular momentum
      • Graph complexity selection (reduces support graph to smaller size trade off speed and quality)
      • Apply stress damage on Blast Actor
      • Debug Render
      -

      +

      +ExtPxStressSolver

      +Stress Solver - this wrapper class uses Stress Solver Extension (NvBlastExtStress) to apply stress calculations to an ExtPxFamily. See Stress Solver Extension (NvBlastExtStress) for the details of the underlying stress solver.

      Usage

      -In order to use it instance stress solver by providing ExtPxFamily:

      -

      ExtStressSolver* stressSolver = ExtStressSolver::create(family);
      +In order to use it, instance an ExtPxStressSolver by providing ExtPxFamily: 

      +

      ExtPxStressSolver* stressSolver = ExtPxStressSolver::create(family);
       

      And then call update() every frame:

      bool doDamage = true; // if you want to actually apply stress and damage actors
       stressSolver->update(doDamage);
       

      -By default it will apply scene gravity on static actors and centrifugal force on dynamic actors. Also applyImpulse(...) can be called for additional stress to apply:

      -

      stressSolver->applyImpulse(actor, position, force);
      +By default it will apply scene gravity on static actors and centrifugal force on dynamic actors.

      +The underlying ExtStressSolver can be accessed using ExtPxStressSolver::getSolver(). For example, to apply impulse to a particular actor, use applyImpulse(...) can be called for additional stress to apply:

      +

      stressSolver->getSolver().addForce(actor, position, impulse);
      +

      +Finally, the stress solver (and its underlying ExtStressSolver) may be released using

      +

      stressSolver->release();
       

      -It fully utilizes the fact that it knows initial support graph structure and does maximum of processing in create(...) method calls. After that all actors split calls are synced internally quite fast and only the actual stress propagation takes most of computational time. Computational time is linearly proprtional to bondIterationsPerFrame setting. To fine tune look for balance between bondIterationsPerFrame and graphReductionLevel . The more bond iterations are set the more precise computation will be. The smaller graph allows to make higher fidelity computations witihing the same bond iterations per frame (same time spent), but actual cracks (damaged bonds) will be more sparsed as the result.


      ExtSync

      diff --git a/docs/api_docs/files/pageextpxserialization.html b/docs/api_docs/files/pageextpxserialization.html new file mode 100644 index 0000000..92e056f --- /dev/null +++ b/docs/api_docs/files/pageextpxserialization.html @@ -0,0 +1,54 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: ExtPhysX Serialization (NvBlastExtPxSerialization) + + + + + + + +
      +

      ExtPhysX Serialization (NvBlastExtPxSerialization)

      This extension contains serializers which can be loaded into the ExtSerialization manager defined in Serialization (NvBlastExtSerialization).

      +To use this extension, you must also load the ExtSerialization extension and create a serialization manager as described in Serialization (NvBlastExtSerialization).

      +We repeat this here (again, assuming we're in the Nv::Blast namespace):

      +

      ExtSerialization* ser = NvBlastExtSerializationCreate();
      +

      +Then, call the function NvBlastExtPxSerializerLoadSet, declared in NvBlastExtPxSerialization.h, passing in your TkFramework (required by ExtPhysX), along with your physx::PxPhysics and physx::PxCooking pointers:

      +

      TkFramework* framework = ... // We must have created a TkFramework
      +physx::PxPhysics* physics = ... // and PxPhysics
      +physx::PxCooking* cooking = ... // and PxCooking
      +
      +NvBlastExtPxSerializerLoadSet(*framework, *physics, *cooking *ser);
      +

      +Now your serialization manager will have the serializers provided by this extension. Currently only ExtPxAsset serializers exist, with object type ID given by

      +
      + ExtPxObjectTypeID::Asset
      +

      +As with low-level assets, you can serialize using the serialization manager directly:

      +

      const ExtPxAsset* asset = ... // Given pointer to an Nv::Blast::ExtPxAsset
      +
      +void* buffer;
      +uint64_t size = ser->serializeIntoBuffer(buffer, asset, ExtPxObjectTypeID::Asset);
      +

      +or use the wrapper function defined in NvBlastExtPxSerialization.h:

      +/code void* buffer; uint64_t size = NvBlastExtSerializationSerializeExtPxAssetIntoBuffer(buffer, *ser, asset); /endcode

      +
      +

      + + + + diff --git a/docs/api_docs/files/pageextserialization.html b/docs/api_docs/files/pageextserialization.html index fc253de..4a72cd9 100644 --- a/docs/api_docs/files/pageextserialization.html +++ b/docs/api_docs/files/pageextserialization.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Serialization (NvBlastExtSerialization) + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Serialization (NvBlastExtSerialization) @@ -20,7 +20,131 @@
      -

      Serialization (NvBlastExtSerialization)

      TBD

      +

      Serialization (NvBlastExtSerialization)

      +Introduction

      +This extension defines the Nv::Blast::ExtSerialization class, a modular serialization manager which can be extended to handle data types from different Blast™ modules (such as low-level, Tk, and ExtPhysX).

      +An ExtSerialization manager is created using the global function NvBlastExtSerializationCreate:

      +(From now on we'll assume we are using the Nv::Blast namespace.)

      +

      ExtSerialization* ser = NvBlastExtSerializationCreate();
      +

      +ExtSerialization is capable of loading sets of serializers for different data types and encodings. The NvBlastExtSerialization extension comes with a set of low-level data serializers, with types enumerated in the header NvBlastExtLlSerialization.h.

      +The low-level serializers are automatically loaded into an ExtSerialization when it is created.

      +To load serializers for Tk and ExtPhysX assets, you must also load the extensions BlastTk Serialization (NvBlastExtTkSerialization) and ExtPhysX Serialization (NvBlastExtPxSerialization), respectively. See the documentation for those modules.

      +Each serializer is capable of reading (and writing, if it is not read-only) a single data type in a single encoding (format). Some serializers are read-only, in order to read legacy formats.

      +The encodings available are enumerated in ExtSerialization::EncodingID. They are currently:

      +

        +
      • CapnProtoBinary - Uses Cap'n Proto's binary serialization format
      • Raw - For low-level NvBlastAsset and NvBlastFamily types, this is simply a memory copy. For Tk and ExtPx assets, this is the deprecated serialization format from Blast™ 1.0.
      +

      +
      +

      +Serialization (writing)

      +To serialize an object, the serialization manager's write encoding ID must be set to the desired value. By default it is set to EncodingID::CapnProtoBinary, as this is the only encoding which supports writing for all object types (at the present time). When other encodings become available, use ExtSerialization::setSerializationEncoding to set the write encoding to the desired type.

      +Each serialization module defines the object types it can serialize. ExtSerialization defines the low-level types in NvBlastExtLlSerialization.h:

      +

      +

      +To serialize an object, for example an NvBlastAsset, use ExtSerialization::serializeIntoBuffer as follows:

      +/code const NvBlastAsset* asset = ... // Given pointer to an NvBlastAsset

      +void* buffer; uint64_t size = ser->serializeIntoBuffer(buffer, asset, LlObjectTypeID::Asset); /endcode

      +If successful, the data is written into a buffer allocated using the NvBlastGlobals allocator, written to the "buffer" parameter, and the size of the buffer written is the return value of the function. If the function returns 0, then serialization was unsuccessful. Notice that the second function parameter is actually a void*, so it requires the last parameter to tell it what object it's serializing. A utility wrapper function is given in NvBlastExtLlSerialization.h which performs the same operation with an NvBlastAsset, so one could equivalently use

      +/code void* buffer; uint64_t size = NvBlastExtSerializationSerializeAssetIntoBuffer(buffer, *ser, asset); /endcode

      +A corresponding function also exists for NvBlastFamily, as well as other data types supported by other serialization extensions.

      +This buffer may be written to disk, memory, networked, etc. Since the memory for the buffer is allocated using the allocator in NvBlastGlobals, it may be freed using the same allocator:

      +

      NVBLAST_FREE(buffer)
      +

      +
      +

      +Using a Buffer Provider

      +If you wish to provide the serialization buffer by some means other than the NvBlastGlobals allocator, you may set a "buffer provider" in the serialization manager. A buffer provider is simply a callback that requests a buffer from the user of the necessary size. The user implements the interface ExtSerialization::BufferProvider, and passes a pointer to an instance of one to the serialization manager using ExtSerialization::setBufferProvider.

      +For example:

      +

      std::vector<char> growableBuffer;
      +
      +class MyBufferProvider : public Nv::Blast::ExtSerialization::BufferProvider
      +{
      +public:
      +    MyBufferProvider(std::vector<char>& growableBuffer) : m_growableBuffer(growableBuffer) {}
      +
      +    virtual void*   requestBuffer(size_t size) override
      +    {
      +        if (m_growableBuffer.size() < size)
      +        {
      +            m_growableBuffer.resize(size);
      +        }
      +        return m_growableBuffer.data();
      +    }
      +
      +private:
      +    std::vector<char>&  m_growableBuffer;
      +} myBufferProvider(growableBuffer);
      +
      +ser->setBufferProvider(&myBufferProvider);
      +

      +Passing NULL to setBufferProvider returns the serialization to its default behavior of using the NvBlastGlobals allocator.

      +
      +

      +Deserialization (reading)

      +To deserialize an object, use the ExtSerialization::deserializeFromBuffer method. If you know the type of object in the buffer, you may directly cast the returned pointer to one of that type. For example, if the buffer contains an NvBlastAsset, use:

      +

      const void* buffer = ... // A given buffer, may be read from disk, memory, etc.
      +const uint64_t size = ... // The buffer's size in bytes
      +
      +NvBlastAsset* asset = static_cast<NvBlastAsset*>(ser->deserializeFromBuffer(buffer, size));
      +

      +This returns a valid pointer if deserialization was successful, or NULL otherwise. If no serializer is loaded which can handle the object type in the stream in its given encoding, it will fail and return NULL.

      +Again, the memory for the asset is allocated using NvBlastGlobals, so that the asset may be released using

      +

      NVBLAST_FREE(asset);
      +

      +
      +

      +Detecting the Object Type in a Buffer

      +If you don't know the object type in the buffer, you may use the last (optional) argument in deserializeFromBuffer to return the type:

      +

      uint32_t objTypeID;
      +void* obj = ser->deserializeFromBuffer(buffer, size, &objTypeID);
      +
      +NVBLAST_CHECK_ERROR(obj != nullptr, "Object could not be read from buffer.", return);
      +
      +switch (objTypeID)
      +{
      +case LlObjectTypeID::Asset:
      +    handleAssetLoad(static_cast<NvBlastAsset*>(obj));
      +    break;
      +case LlObjectTypeID::Family:
      +    handleFamilyLoad(static_cast<NvBlastFamily*>(obj));
      +    break;
      +default:
      +    NVBLAST_LOG_ERROR("Unknown object type ");
      +}
      +

      +
      +

      +Peeking at and Skipping Buffer Data

      +If a buffer contains multiple objects, you may peek at the buffer to get object information including object type, encoding, and data size, and skip to the next object in the buffer (whether or not you've chosen to read the current object). For example:

      +

      const void* buffer = ... // The input buffer
      +uint64_t size = ... // The input buffer size
      +
      +while (size)
      +{
      +    uint64_t objTypeID;
      +    if (!ser->peekHeader(&objTypeID, NULL, NULL, buffer, size)) // Only reading the object type ID; may pass in NULL for the other header value pointers
      +    {
      +        break;  // Read error, stop
      +    }
      +
      +    if (objectShouldBeLoaded(objTypeID))    // Some function to determine whether or not we want this object
      +    {
      +        void* obj = ser->deserializeFromBuffer(buffer, size);
      +        // Handle loaded object ...
      +    }
      +
      +    // Jump to next object:
      +    buffer = ser->skipObject(size, buffer); // Updates size as well
      +}
      +

      +
      +

      +Cleaning Up

      +When finished with the serialization manager, it may be released using its release() method:

      +

      ser->release();
      +


      diff --git a/docs/api_docs/files/pageextshaders.html b/docs/api_docs/files/pageextshaders.html index f7b3099..836f4e5 100644 --- a/docs/api_docs/files/pageextshaders.html +++ b/docs/api_docs/files/pageextshaders.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Damage Shaders (NvBlastExtShaders) + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Damage Shaders (NvBlastExtShaders) @@ -20,23 +20,25 @@
      -

      Damage Shaders (NvBlastExtShaders)

      Blast Extensions provide basic implementations of programs generating fracture commands, the first step in breaking a Blast™ Actor, see Damage and Fracturing. These programs come as two shader functions (callbacks) for Actors with a support graph and Actors with just one chunk respectively. The NvBlastDamageProgram containing both shaders can be used for low-level directly (NvBlastActorGenerateFracture) or for TkActor's damage and fracture functions.

      +

      Damage Shaders (NvBlastExtShaders)

      The Blast™ damage shader extension provides basic implementations of programs generating fracture commands, the first step in breaking a Blast™ Actor, see Damage and Fracturing. These programs come as two shader functions (callbacks): one for Actors with a support graph, and one for Actors with just one chunk, respectively. The NvBlastDamageProgram containing both shaders can be used for low-level directly (NvBlastActorGenerateFracture) or for TkActor's damage and fracture functions.

      +For example, one may construct a damage program using the "shear" damage shaders declared in NvBlastExtDamageShaders.h:

      -The appropriate shader will be called for an Actor being processed, along with the necessary Actor's geometry and program parameters. The parameters (NvBlastProgramParams) are set to contain

      +The appropriate shader ("graph" or "subgraph") will be called for an Actor being processed, along with the Actor's necessary geometry and program parameters. The parameters (NvBlastProgramParams) are set to contain

      1. Material, something that describes an Actor properties (e.g. mass, stiffness, fragility) which are not expected to be changed often.

      2. Damage description, something that describes a particular damage event (e.g. position, radius and force of explosion).

      -

          NvBlastExtMaterial material = { singleChunkThreshold, graphChunkThreshold, bondTangentialThreshold, bondNormalThreshold, damageAttenuation };
      +For example:

      +

          NvBlastExtMaterial material = { health, minDamageThreshold, maxDamageThreshold };
           NvBlastExtRadialDamageDesc damageDesc = { compressive, posX, posY, posZ, minR, maxR };
       

      When used with TkActor::damage() functions, TkActor will cache the necessary data for deferred processing through TkGroup. This includes accumulating damage requests for the same material and program parameter combination. A default material can be set for a TkFamily that all its Actors uses.

      +A Tk layer example follows.

          tkGroup->addActor(*tkActor);
           tkActor->damage(damageProgram, damageDesc0, sizeof(NvBlastExtRadialDamageDesc), &material);
           tkActor->damage(damageProgram, damageDesc1, sizeof(NvBlastExtRadialDamageDesc), &material);
           tkGroup->process();
      -    tkGroup->sync();
       

      -In contrast, the user is responsible for providing all the damage descriptions persisting through the low-level NvBlastActorGenerateFracture call when not using the Tk layer.

      +In contrast, the user is responsible for providing all the damage descriptions persisting through the low-level NvBlastActorGenerateFracture call when not using the Tk layer:

          NvBlastProgramParams programParams = { damageDescs, 2, &material };
           NvBlastActorGenerateFracture(commandBuffers, actor, damageProgram, &programParams, nullptr, nullptr);
       
      diff --git a/docs/api_docs/files/pageextstress.html b/docs/api_docs/files/pageextstress.html new file mode 100644 index 0000000..a082f9d --- /dev/null +++ b/docs/api_docs/files/pageextstress.html @@ -0,0 +1,111 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Stress Solver Extension (NvBlastExtStress) + + + + + + + +
      +

      Stress Solver Extension (NvBlastExtStress)

      The Blast™ stress solver extension provides implementation of quite fast and easy to use stress solver which works directly with bond graph. It simulates more complex damage model on support graph by allowing to apply forces on nodes of support graph (on chunks). The most common usage is just applying gravity force on a static construction so that it will fall apart at some point when carcass can't hold anymore. Dynamic actors are also supported, you could for example add centrifugal force so that rotating object fast enough will break bonds.

      +It is also can be used as an another way to apply impact damage, which can give visually pleasant result of breaking actor in a weak place instead of the place of contact.

      +
      +

      +Features

      +
        +
      • Requires only core NvBlast
      • Supports both static and dynamic actors
      • Propagates both linear and angular momentum
      • Graph complexity selection (reduces support graph to smaller size trade off speed and quality)
      • Apply stress damage on Blast Actor
      • Debug Render
      +

      +
      +

      +Settings Tuning

      +Computational time is linearly proprtional to bondIterationsPerFrame setting. To fine tune look for balance between bondIterationsPerFrame and graphReductionLevel . The more bond iterations are set the more precise computation will be. The smaller graph allows to make higher fidelity computations witihing the same bond iterations per frame (same time spent), but actual cracks (damaged bonds) will be more sparsed as the result.

      +Debug render could help a lot with that, consider using stressSolver->fillDebugRender(...) for that.

      +
      +

      +Usage

      +In order to use it create an instance with ExtStressSolver::create(...).

      +

      ExtStressSolver* stressSolver = ExtStressSolver::create(family, settings);
      +

      +ExtStressSolverSettings are passed in create function, but also can be changed at any time with stressSolver->setSettings(...).

      +It fully utilizes the fact that it knows initial support graph structure and does maximum of processing in create(...) method calls. After that all actors split calls are synced internally quite fast and only the actual stress propagation takes most of computational time.

      +Then you need to provide physics specific information (mass, volume, position, static) for every node in support graph since Blast itself is physics agnostic. There are two ways to do it, you can call stressSolver->setNodeInfo(...) for every graph node. Another was is to call stressSolver->setAllNodesInfoFromLL() once all the data will be populated using NvBlastAsset chunk's data, in particular volume and centroid are used. All nodes connected to 'world' chunk are marked as static.

      +

      stressSolver->setAllNodesInfoFromLL();
      +

      +Stress solver needs to keep track for actor create/destroy events in order to update it's internal stress graph accordingly. So you need to call stressSolver->notifyActorCreated(actor) and stressSolver->notifyActorDestroyed(actor) every time actor is created or destroyed including the initial actor family had when stress solver were created. There is no need to track actors which contain only one or lesser graph nodes in that case notifyActorCreated(actor) returns 'false' as a hint, it means that stress solver will ignore them. For those actors applying forces is also doesn't make any sense.

      +Typical update loop would can look like this:

      +

        +
      1. If split happend call relevant stressSolver->notifyActorCreated(actor) and stressSolver->notifyActorDestroyed(actor)
      2. Apply all forces, use stressSolver->addForce(...), stressSolver->addGravityForce(...), stressSolver->addAngularVelocity(...)
      3. Call stressSolver->update(). This is where all expensive computation happens.
      4. If stressSolver->getOverstressedBondCount() > 0 use one of stressSolver->generateFractureCommands() methods to get bond fracture commands and apply on them actors.
      +

      +Example code from ExtPxStressSolverImpl:

      +

      void ExtPxStressSolverImpl::onActorCreated(ExtPxFamily& /*family*/, ExtPxActor& actor)
      +{
      +    if (m_solver->notifyActorCreated(*actor.getTkActor().getActorLL()))
      +    {
      +        m_actors.insert(&actor);
      +    }
      +}
      +
      +void ExtPxStressSolverImpl::onActorDestroyed(ExtPxFamily& /*family*/, ExtPxActor& actor)
      +{
      +    m_solver->notifyActorDestroyed(*actor.getTkActor().getActorLL());
      +    m_actors.erase(&actor);
      +}
      +
      +void ExtPxStressSolverImpl::update(bool doDamage)
      +{
      +    for (auto it = m_actors.getIterator(); !it.done(); ++it)
      +    {
      +        const ExtPxActor* actor = *it;
      +
      +        PxRigidDynamic& rigidDynamic = actor->getPhysXActor();
      +        const bool isStatic = rigidDynamic.getRigidBodyFlags() & PxRigidBodyFlag::eKINEMATIC;
      +        if (isStatic)
      +        {
      +            PxVec3 gravity = rigidDynamic.getScene()->getGravity();
      +            PxVec3 localGravity = rigidDynamic.getGlobalPose().rotateInv(gravity);
      +
      +            m_solver->addGravityForce(*actor->getTkActor().getActorLL(), localGravity);
      +        }
      +        else
      +        {
      +            PxVec3 localCenterMass = rigidDynamic.getCMassLocalPose().p;
      +            PxVec3 localAngularVelocity = rigidDynamic.getGlobalPose().rotateInv(rigidDynamic.getAngularVelocity());
      +            m_solver->addAngularVelocity(*actor->getTkActor().getActorLL(), localCenterMass, localAngularVelocity);
      +        }
      +    }
      +
      +    m_solver->update();
      +
      +    if (doDamage && m_solver->getOverstressedBondCount() > 0)
      +    {
      +        NvBlastFractureBuffers commands;
      +        m_solver->generateFractureCommands(commands);
      +        if (commands.bondFractureCount > 0)
      +        {
      +            m_family.getTkFamily().applyFracture(&commands);
      +        }
      +    }
      +}
      +

      +Have a look at ExtPxStressSolver implementation code, which is basically high level wrapper on NvBlastExtStress to couple it with PhysX™ and NvBlatExtPx extension (see ExtPxStressSolver).

      +
      +

      + + + + diff --git a/docs/api_docs/files/pageexttkserialization.html b/docs/api_docs/files/pageexttkserialization.html new file mode 100644 index 0000000..ef75639 --- /dev/null +++ b/docs/api_docs/files/pageexttkserialization.html @@ -0,0 +1,52 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: BlastTk Serialization (NvBlastExtTkSerialization) + + + + + + + +
      +

      BlastTk Serialization (NvBlastExtTkSerialization)

      This extension contains serializers which can be loaded into the ExtSerialization manager defined in Serialization (NvBlastExtSerialization).

      +To use this extension, you must also load the ExtSerialization extension and create a serialization manager as described in Serialization (NvBlastExtSerialization).

      +We repeat this here (again, assuming we're in the Nv::Blast namespace):

      +

      ExtSerialization* ser = NvBlastExtSerializationCreate();
      +

      +Then, call the function NvBlastExtTkSerializerLoadSet, declared in NvBlastExtTkSerialization.h, passing in your TkFramework:

      +

      TkFramework* framework = ... // We must have created a TkFramework
      +
      +NvBlastExtTkSerializerLoadSet(*framework, *ser);
      +

      +Now your serialization manager will have the serializers provided by this extension. Currently only TkAsset serializers exist, with object type ID given by

      +
      + TkObjectTypeID::Asset
      +

      +As with low-level assets, you can serialize using the serialization manager directly:

      +

      const TkAsset* asset = ... // Given pointer to an Nv::Blast::TkAsset
      +
      +void* buffer;
      +uint64_t size = ser->serializeIntoBuffer(buffer, asset, TkObjectTypeID::Asset);
      +

      +or use the wrapper function defined in NvBlastExtTkSerialization.h:

      +/code void* buffer; uint64_t size = NvBlastExtSerializationSerializeTkAssetIntoBuffer(buffer, *ser, asset); /endcode

      +
      +

      + + + + diff --git a/docs/api_docs/files/pageglobalsapi.html b/docs/api_docs/files/pageglobalsapi.html new file mode 100644 index 0000000..0e0b8b5 --- /dev/null +++ b/docs/api_docs/files/pageglobalsapi.html @@ -0,0 +1,79 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Globals API (NvBlastGlobals) + + + + + + + +
      +

      Globals API (NvBlastGlobals)

      The NvBlastGlobals library is a utility library which is used by NvBlastTk (see High Level (Toolkit) API (NvBlastTk)) and some extensions (see Extensions (NvBlastExt)) and samples.

      +It provides a global allocator, error callback, and profiler API.

      +
      +

      +Allocator

      +Include NvBlastGlobals.h
      +

      +A global allocator with interface

      +

      +may be set by the user with the function

      +

      +and accessed using

      +

      +An internal, default allocator is used if the user does not set their own, or if NULL is passed into NvBlastGlobalSetAllocatorCallback.

      +This allocator is used by NvBlastTk, as well as any extension that allocates memory. In addition, utility macros are provided such as NVBLAST_ALLOC, NVBLAST_FREE, NVBLAST_NEW, and NVBLAST_DELETE.

      +
      +

      +Error Callback

      +Include NvBlastGlobals.h

      +A global error message callback with interface

      +

      +may be set by the user with the function

      +

      +and accessed using

      +

      +An internal, default error callback is used if the user does not set their own, or if NULL is passed into NvBlastGlobalSetErrorCallback.

      +This error callback is used by NvBlastTk, as well as many extensions. In addition, utility macros are provided such as NVBLAST_LOG_ERROR and NVBLAST_LOG_WARNDING.

      +Finally, a function with signature given by NvBlastLog is provided which uses the global error callback,

      +

      +This function may be passed into any NvBlast™ function's log parameter.

      +
      +

      +Profiler API

      +Include NvBlastProfiler.h
      +

      +BlastTk contains many profiling zones which use the global profiler which can be accessed in this library. The user may implement the interface

      +

      +and pass it to the globals library using

      +

      +A NULL pointer may be passed in, disabling profiling. Profiler features are only active in checked, debug and profile builds.

      +
      +

      + + + + diff --git a/docs/api_docs/files/pagehlapi.html b/docs/api_docs/files/pagehlapi.html index 5946817..72888e3 100644 --- a/docs/api_docs/files/pagehlapi.html +++ b/docs/api_docs/files/pagehlapi.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: High Level (Toolkit) API (NvBlastTk) + NVIDIA(R) Blast(R) SDK 1.1 API Reference: High Level (Toolkit) API (NvBlastTk) @@ -44,53 +44,49 @@ The high-level API, NvBlastTk (Tk stands for "toolkit"), is intended to be a mor For the remainder of this page we will be in the Nv::Blast namespace, and will drop the explicit scope Nv::Blast:: from our names.

      +BlastTk access the

      BlastTk adds:

        -
      • An object class hierarchy (see NvBlastTk Class Hierarchy, below).
      • A global framework, TkFramework (a singleton). This holds an allocator and error message callback, keeps track of TkIdentifiable objects and allows the user to query them based upon either GUID or TkIdentifiable subclass type, and also provides a number of functions to create the various objects in BlastTk.
      • Task management and processing groups (see TkGroup).
      • Event dispatching for actor families (see TkFamily).
      • Intra-actor and inter-actor joint management (see TkJoint). Note, only joint descriptions are managed, since physical objects are not handled by BlastTk.
      • Various damage and material options for actors (TkActor).
      +
    • An object class hierarchy (see NvBlastTk Class Hierarchy, below).
    • A global framework, TkFramework (a singleton). This keeps track of TkIdentifiable objects and allows the user to query them based upon either GUID or TkIdentifiable subclass type, and also provides a number of functions to create the various objects in BlastTk.
    • Processing groups with a task interface (see TkGroup).
    • Event dispatching for actor families (see TkFamily).
    • Intra-actor and inter-actor joint management (see TkJoint). Note, these "joints" only hold descriptor data, since physical objects are not handled by BlastTk.


    NvBlastTk Class Hierarchy

      -
    • There are three abstract interfaces, in an inheritance chain: TkObject <- TkIdentifiable <- TkSerializable.
        -
      • Lightweight objects are derived from TkObject.
      • Objects which use a GUID and class identification are derieved from TkIdentifiable.
      • Objects which support serialization are derived from TkSerializable.
      -
    • TkAsset derives from TkSerializable. This is mostly a wrapper for NvBlastAsset, however it also stores extra data associated with the asset such as a chunk map and internal joint descriptors.
    • TkFamily derives from TkSerializable. One and only one of these objects is made when a TkActor is instanced from a TkAsset. All actors that are created by splitting the family's original actor remain within the same family. Actor and joint events are dispatched from the TkFamily.
    • TkGroup derives from TkIdentifiable. Groups are processing units. The user may create as many groups as they please, and add or remove actors as they please from groups. The group will process damage applied to its actors, and split the actors into new actors when the actors fracture. Groups use a user-defined task manager and can process actors in multiple threads simultaneously.
    • TkActor derives from TkObject. It is mostly a wrapper for NvBlastActor, but it also provides a number of damage functions to the user.
    • TkJoint derives from TkObject. Based upon TkAsset and TkComposite descriptors, a TkJoint may be internal to an actor (joining chunks within the same actor) or external (joining chunks between two actors). As actors split, internal joints may become external. The user gets notification whenever joints become external, or when actors joined by joints change or are deleted.
    +
  • There are two abstract interfaces, one of which deriving from the other: TkObject <- TkIdentifiable.
      +
    • Lightweight objects are derived from TkObject.
    • Objects which use a GUID and class identification are derieved from TkIdentifiable.
    +
  • TkAsset derives from TkIdentifiable. This is mostly a wrapper for NvBlastAsset, however it also stores extra data associated with the asset such as internal joint descriptors.
  • TkFamily derives from TkIdentifiable. One of these objects is made when a TkActor is instanced from a TkAsset. All actors that are created by splitting the family's original actor remain within the same family. Actor and joint events are dispatched from the TkFamily.
  • TkGroup derives from TkIdentifiable. Groups are processing units. The user may create as many groups as they please, and add or remove actors as they please from groups. The group provides a worker (TkGroupWorker) interface which allows the user to process multiple jobs in the group asynchoronously. These jobs, along with a call to TkGroup::endProcess(), perform the tasks of generating fracture commands, applying fracture commands, and actor splitting at the low-level. The user is informed of splitting through listeners given to TkFamily objects.
  • TkActor derives from TkObject. It is mostly a wrapper for NvBlastActor, but it also provides a number of damage functions to the user.
  • TkJoint derives from TkObject. TkAsset descriptors, cause internal TkJoint obejcts to be created within an actor (joining chunks within the same actor). Alternatively, the TkFramework provides a function which allows the user to create an external joint between any two different actors. As actors split, internal joints may become external. The user gets notification whenever joints become external, or when actors joined by joints change or are deleted, through listeners attached to the associated TkFamily objects.
  • -
    -

    +
    +

    Linking and Header Files

    -To use the BlastTk library, the application need only inlclude the header NvBlastTk.h, found in the include/toolkit folder, and link against the appropriate version of the NvBlastTk library. Depending on the platform and configuration, various suffixes will be added to the library name. The general naming scheme is

    -NvBlastTk(config)(arch).(ext)

    -(config) is DEBUG, CHECKED, OR PROFILE for the corresponding configurations. For a release configuration there is no (config) suffix.

    -(arch) is _x86 or _x64 for Windows 32- and 64-bit builds, respectively, and empty for non-Windows platforms.

    -(ext) is .lib for static linking and .dll for dynamic linking on Windows. On XBoxOne it is .lib, and on PS4 it is .a.

    -
    -

    + To use the BlastTk library, the application need only inlclude the header NvBlastTk.h, found in the include/toolkit folder, and link against the appropriate version of the NvBlastTk library. Depending on the platform and configuration, various suffixes will be added to the library name. The general naming scheme is

    +NvBlastTk(config)(arch).(ext)

    +(config) is DEBUG, CHECKED, OR PROFILE for the corresponding configurations. For a release configuration there is no (config) suffix.

    +(arch) is _x86 or _x64 for Windows 32- and 64-bit builds, respectively, and empty for non-Windows platforms.

    +(ext) is .lib for static linking and .dll for dynamic linking on Windows. On XBoxOne it is .lib, and on PS4 it is .a.

    +
    +

    Creating the TkFramework

    -As a reminder, in this document we assume we are in the Nv::Blast namespace:

    -

    using Nv::Blast;
    -

    -In order to use NvBlastTk, one first has to create a TkFramework singleton. This requires a descriptor which holds two callback classes defined by the user. These classes are derived from the physx::PxErrorCallback and physx::PxAllocatorCallback interfaces, and define message handling and allocation/deallocation functions, respectively. Assuming the user has already defined these objects with names gErrorCallback and gAllocatorCallback, the TkFramework descriptor is built as follows:

    -

    TkFrameworkDesc desc;
    -desc.errorCallback = &gErrorCallback;           // physx::PxErrorCallback-derived callback object
    -desc.allocatorCallback = &gAllocatorCallback;   // physx::PxAllocatorCallback-derived callback object
    -

    -One then creates the framework:

    -

    TkFramework* framework = NvBlastTkFrameworkCreate( desc );
    -

    -The framework is a global singleton, and may be accessed via:

    -

    TkFramework* framework = NvBlastTkFrameworkGet();
    -

    -In the sections that follow, it is assumed that a framework has been created, and we have a pointer to it named 'framework' within scope.

    -Finally, to release the framework, use

    -

    framework->release();
    -

    -This will release all assets, families, actors, joints, and groups.

    -
    -

    + As a reminder, in this document we assume we are in the Nv::Blast namespace:

    +

    using Nv::Blast;
    +

    +In order to use NvBlastTk, one first has to create a TkFramework singleton. This simply requires a call to the global function NvBlastTkFrameworkCreate:

    +

    TkFramework* framework = NvBlastTkFrameworkCreate();
    +

    +The framework may be accessed via:

    +

    TkFramework* framework = NvBlastTkFrameworkGet();
    +

    +In the sections that follow, it is assumed that a framework has been created, and we have a pointer to it named 'framework' within scope.

    +Finally, to release the framework, use

    +

    framework->release();
    +

    +This will release all assets, families, actors, joints, and groups.

    +
    +

    Creating a TkAsset

    -The TkAsset object is a high-level wrapper for the low-level NvBlastAsset (see Creating an Asset from a Descriptor (Authoring)). The descriptor used to create a TkAsset, a TkAssetDesc, is derived from NvBlastAssetDesc. The base fields should be filled in as described in (Creating an Asset from a Descriptor (Authoring)). The new field is an optional array of flags to be associated with each bond in the base descriptor. Currently the only flag is "BondJointed," and if set will cause an "internal joint" to be created in actors (TkActor type) created from the asset. See (Joints) for more on joints in BlastTk.

    -

    TkAssetDesc desc;
    + The TkAsset object is a high-level wrapper for the low-level NvBlastAsset (see Creating an Asset from a Descriptor (Authoring)). The descriptor used to create a TkAsset, a TkAssetDesc, is derived from NvBlastAssetDesc. The base fields should be filled in as described in (Creating an Asset from a Descriptor (Authoring)). The new field is an optional array of flags to be associated with each bond in the base descriptor. Currently the only flag is "BondJointed," and if set will cause an "internal joint" to be created in actors (TkActor type) created from the asset. See (Joints) for more on joints in BlastTk.

    +

    TkAssetDesc desc;
     
     myFunctionToFillInLowLevelAssetFields(desc);    // Fill in the low-level (NvBlastAssetDesc) fields as usual
     
    @@ -106,16 +102,16 @@ std::vector<uint8_t*> bondFlags(desc.bondCount, 0); 
     }
     
     TkAsset* asset = framework->createAsset(desc);  // Create a new TkAsset
    -

    -The createAsset function used above creates a low-level NvBlastAsset from the base fields of the descriptor, and then adds internal joint descriptors based upon the bonds' centroids and attached chunks. An alternative method to create a TkAsset allows the user to pass in a pre-existing NvBlastAsset, and a list of joint descriptors. If the TkAsset is to have no internal joints, then the joint descriptors are not necessary and with an NvBlastAsset pointer llAsset, a TkAsset may be created simply by using

    -

    TkAsset* asset = framework->createAsset(llAsset);
    -

    -By default, such a TkAsset will not "own" the llAsset. When the TkAsset is released, the llAsset memory will be untouched. You can pass ownership to the TkAsset using all of the default parameters of the createAsset function:

    -

    TkAsset* asset = framework->createAsset(llAsset, nullptr, 0, true);
    -

    -The last parameter sets ownership.

    -If one wants to author internal joints in a TkAsset using this second createAsset method, one must pass in a valid array of joint descriptors of type TkAssetJointDesc. Each joint descriptor takes two positions and two node indices. The positions are the joint's attachment positions in asset space, and the nodes indices are those of the graph nodes that correspond to support chunks. These indices are not, in general, the same as the chunk indices. An example of initialization of the joint descriptors is given below.

    -

    std::vector<TkAssetJointDesc> jointDescs(jointCount);   // Assume jointCount = the number of joints to add
    +

    +The createAsset function used above creates a low-level NvBlastAsset from the base fields of the descriptor, and then adds internal joint descriptors based upon the bonds' centroids and attached chunks. An alternative method to create a TkAsset allows the user to pass in a pre-existing NvBlastAsset, and a list of joint descriptors. If the TkAsset is to have no internal joints, then the joint descriptors are not necessary and with an NvBlastAsset pointer llAsset, a TkAsset may be created simply by using

    +

    TkAsset* asset = framework->createAsset(llAsset);
    +

    +By default, such a TkAsset will not "own" the llAsset. When the TkAsset is released, the llAsset memory will be untouched. You can pass ownership to the TkAsset using all of the default parameters of the createAsset function:

    +

    TkAsset* asset = framework->createAsset(llAsset, nullptr, 0, true);
    +

    +The last parameter sets ownership. N.B.: in order for the TkAsset to own the underlying llAsset, and therefore release it when the TkAsset is released, the memory for the llAsset must be allocated using the allocator accessed through NvBlastGlobals (see Globals API (NvBlastGlobals)).

    +If one wants to author internal joints in a TkAsset using this second createAsset method, one must pass in a valid array of joint descriptors of type TkAssetJointDesc. Each joint descriptor takes two positions and two node indices. The positions are the joint's attachment positions in asset space, and the nodes indices are those of the graph nodes that correspond to support chunks. These indices are not, in general, the same as the chunk indices. An example of initialization of the joint descriptors is given below.

    +

    std::vector<TkAssetJointDesc> jointDescs(jointCount);   // Assume jointCount = the number of joints to add
     jointDescs[0].nodeIndices[0] = 0;   // Attach node 0 to node 1
     jointDescs[0].nodeIndices[1] = 1;
     jointDescs[0].attachPoistions[0] = physx::PxVec3( 1.0f, 2.0f, 3.0f );   // Attachment positions are often the same within an asset, but they don't have to be
    @@ -123,45 +119,42 @@ jointDescs[0].attachPoistions[1] = physx::PxVec3( 1.0f, 2.0f, 3.0f );
     // ... etc.
     
     TkAsset* asset = framework->createAsset(llAsset, jointDescs.data(), jointDescs.size());
    -

    -The code above assumes you know the support graph nodes to which you'd like to attach joints. Often, the user only knows the corresponding chunk indices. Fortunately it's easy to map chunk indices to graph node indices. In order to get the map, use the low-level function

    -

    const uint32_t map = NvBlastAssetGetChunkToGraphNodeMap(llAsset, nullptr);
    -

    -This map is an array with an entry for every chunk index. To get the graph node index for a chunk indexed chunkIndex, use

    -

    uint32_t nodeIndex = map[chunkIndex];
    -

    -If the chunk indexed by chunkIndex does not correspond to a support chunk, then the mapped value will be UINT32_MAX, the invalid index. Otherwise, the mapped value will be a valid graph node index.

    -Finally, to release a TkAsset, as with any TkObject-derived object, use the release() method:

    -asset->release();

    -
    -

    +

    +The code above assumes you know the support graph nodes to which you'd like to attach joints. Often, the user only knows the corresponding chunk indices. Fortunately it's easy to map chunk indices to graph node indices. In order to get the map, use the low-level function

    +

    +This map is an array with an entry for every chunk index. To get the graph node index for a chunk indexed chunkIndex, use

    +

    uint32_t nodeIndex = map[chunkIndex];
    +

    +If the chunk indexed by chunkIndex does not correspond to a support chunk, then the mapped value will be UINT32_MAX, the invalid index. Otherwise, the mapped value will be a valid graph node index.

    +Finally, to release a TkAsset, as with any TkObject-derived object, use the release() method:

    +asset->release();

    +
    +

    Instancing a TkAsset: Creation of a TkActor and a TkFamily

    -Whereas with the Blast™ low-level (Low Level API (NvBlast)), one must explicitly create a family (NvBlastFamily) from an asset (NvBlastAsset) before creating the first actor (NvBlastActor) in the family, NvBlastTk creates a TkFamily automatically when an unfractured TkActor is instanced from a TkAsset using the framework's createActor function. This family is accessible through the actor and any actor that is created from splitting it. The family not released automatically when all actors within it have been released. The user must use the TkObject::release() method to do so. (Or wait until the framework is released.) If a family is released that contains actors, the actors within will be released as well.

    -The TkFamily has a special roll in NvBlastTk, holding user-supplied event listeners (TkEventListener). All internal actor creation and destruction events are broadcast to listeners through split events (TkSplitEvent). These signal when a fracturing operation has destroyed an actor and created child actors from it. TkActor creation or release that occurs from an explicit API call do not produce events. For example when creating a first unfractured instance of an asset using createAsset, or when calling the release() method on a TkActor. TkJoint events are similarly broadcast to receivers (TkJointEvent). These signal when the actors which are joined by the joints change, so that the user may update a corresponding physical joint. They also signal when a joint no longer attaches actors and is therefore unreferenced. The user may invalidate or release the joint using the TkObject release() method when this occurs (more on joint ownership in Joints).

    -To create an unfractured TkActor instance from a TkAsset, one first fills in a descriptor (TkActorDesc) and passes it to the framework's createActor function. As with the TkAssetDesc, the TkActorDesc is derived from its low-level counterpart, the NvBlastActorDesc. In addition the TkActorDesc holds a pointer to the TkAsset being instanced. An example of TkActor creation is given below, given a TkAsset pointer asset.

    -

    TkActorDesc desc;
    -
    -myFunctionToFillInLowLevelActorFields(desc);    // Fill in the low-level (NvBlastActorDesc) fields as usual
    -
    -desc.asset = asset;
    + Whereas with the Blast™ low-level (Low Level API (NvBlast)), one must explicitly create a family (NvBlastFamily) from an asset (NvBlastAsset) before creating the first actor (NvBlastActor) in the family, NvBlastTk creates a TkFamily automatically when an unfractured TkActor is instanced from a TkAsset using the framework's createActor function. This family is accessible through the actor and any actor that is created from splitting it. The family is not released automatically when all actors within it have been released. The user must use the TkFamily's release() method (see TkObject base API) to do so. (Or wait until the framework is released.) If a family is released that contains actors, the actors within will be released as well.

    +The TkFamily has a special roll in NvBlastTk, holding user-supplied event listeners (TkEventListener). All internal actor creation and destruction events are broadcast to listeners through split events (TkSplitEvent). These signal when a fracturing operation has destroyed an actor and created child actors from it. TkActor creation or release that occurs from an explicit API call do not produce events. For example when creating a first unfractured instance of an asset using createAsset, or when calling the release() method on a TkActor. TkJoint events are similarly broadcast to receivers (TkJointEvent). These signal when the actors which are joined by the joints change, so that the user may update a corresponding physical joint. They also signal when a joint no longer attaches actors and is therefore unreferenced. The user may invalidate or release the joint using the TkObject release() method when this occurs (more on joint ownership in Joints).

    +To create an unfractured TkActor instance from a TkAsset, one first fills in a descriptor (TkActorDesc) and passes it to the framework's createActor function. As with the TkAssetDesc, the TkActorDesc is derived from its low-level counterpart, the NvBlastActorDesc. In addition the TkActorDesc holds a pointer to the TkAsset being instanced. An example of TkActor creation is given below, given a TkAsset pointer asset.

    +

    TkActorDesc desc;   // The TkActorDesc constructor sets sane default values for the base (NvBlastActorDesc) fields, giving uniform chunk and bond healths of 1.0.
    +desc.asset = asset; // This field of TkActorDesc must be set to a valid asset pointer.
     
     TkActor* actor = framework->createActor(desc);
    -

    -The TkFamily created with the actor above may be accessed through the actor's getFamily field:

    -

    TkFamily& family = actor->getFamily();
    -

    -The returned value is a reference since a TkActor's family can never be NULL. Actors resulting from the split of a "parent" actor will always belong to the parent's family.

    -For most applications, the user will need to create a listener object to pass to every family created, in order to keep their physics and graphics representations in sync with the splitting of the TkActor. For more on this, see Events.

    -
    -

    +

    +The TkFamily created with the actor above may be accessed through the actor's getFamily field:

    +

    +The returned value is a reference since a TkActor's family can never be NULL. Actors resulting from the split of a "parent" actor will always belong to the parent's family.

    +For most applications, the user will need to create a listener object to pass to every family created, in order to keep their physics and graphics representations in sync with the splitting of the TkActor. For more on this, see Events.

    +
    +

    Groups

    -One feature of NvBlastTk is multithreading of damage processing. The mechanism by which the toolkit does this is the group object, TkGroup. Groups are created at the request of the user; the user may create as many groups as they like. Actors may be added or removed from groups in any way the user wishes, with the only constraint being that a given actor may belong to no more than one group. A group is a processing object, much like a scene in a physics simulation. Indeed, a natural pattern would be to associate one group per physics scene, and synchronize the group processing with scene simulation. Another pattern would be to subdivide the world into neighborhoods, and associate each neighborhood with a group. A distributed game could take advantage of this structure to similarly distribute computation.

    -When processing, a group spawns tasks to calculate the effects of all damage taken by the group's actors. The group's sync function waits for all tasks to finish, and then has each family associated with its actors broadcast events to its listeners.

    -Actors resulting from the split of a "parent" actor will be placed automatically into the group that the parent belonged to. This is similar to the assigment of families from a split, except that unlike families, the user then has the option to move the new actors to other groups, or no group at all.

    -Also similar to families, groups are not automatically released when the last actor is removed from it. Unlike families, when a group is released, the actors which belong to the group are not released. They will, however, be removed from the group before the release is complete.

    -Because a group spawns tasks, for flexibility it requires a user-defined task manager. This manager needs to implement the type physx::PxTaskManager interface.

    -A typical usage is outlined below. See Applying Damage to Actors and Families for methods of applying damage to actors.

    -

    // Create actors from descriptors desc1, desc2, ... etc., and attach a listener to each new family created
    + One important feature of NvBlastTk is the ability to multitask damage processing. The mechanism by which the toolkit does this is the group object, TkGroup. Groups are created at the request of the user; the user may create as many groups as he or she likes. Actors may be added or removed from groups in any way the user wishes, with the only constraint being that a given actor may belong to no more than one group. A group is a processing object, much like a scene in a physics simulation. Indeed, a natural pattern would be to associate one group per physics scene, and synchronize the group processing with scene simulation. Another pattern would be to subdivide the world into neighborhoods, and associate each neighborhood with a group. A distributed game could take advantage of this structure to similarly distribute computation.

    +Group processing is performed by workers, which have a TkGroupWorker API exposed to the user. The number of workers may be set by the user, with the idea being that this should correspond to the number of threads available for group processing. Processing starts with a call to TkGroup::startProcess(). This creates a number of jobs which the user may assign to workers as they like, each worker potentially on its own thread. The jobs calculate the effects of all damage taken by the group's actors. After all jobs have been run, the user must call TkGroup::endProcess(). This will result in all events being fired off to listeners associated with families with actors in the group.

    +A convenience function, TkGroup::process(), is provided which uses one worker to perform all jobs sequentially on the calling thread. This is useful shortcut to get BlastTk up and running quickly. A multithreaded group processing implementation is given by Nv::Blast::ExtGroupTaskManagerImpl (in NvBlastExtPxTaskImpl.h). This resides in PhysX Extensions (NvBlastExtPhysX), because it uses physx::PxTask.

    +Actors resulting from the split of a "parent" actor will be placed automatically into the group that the parent belonged to. This is similar to the assigment of families from a split, except that unlike families, the user then has the option to move the new actors to other groups, or no group at all.

    +Also similar to families, groups are not automatically released when the last actor is removed from it. Unlike families, when a group is released, the actors which belong to the group are not released. They will, however, be removed from the group before the release is complete.

    +A typical usage is outlined below. See Applying Damage to Actors and Families for methods of applying damage to actors.

    +

    // Create actors from descriptors desc1, desc2, ... etc., and attach a listener to each new family created
     TkActor* actor1 = framework->createActor(desc1);
     actor1->getFamily().addListener(gMyReceiver);       // gMyReceiver is a TkEventListener-derived object.  More on events in a subsequent section.
     TkActor* actor2 = framework->createActor(desc2);
    @@ -191,31 +184,25 @@ myDamageFunction(actor2);
     myDamageFunction(actor3);
     // etc...
     
    -// Calling the groups' process functions will spawn tasks to process damage taken to the contained actors.
    +// Calling the groups' process functions will (synchronously) run all jobs to process damage taken by the contained actors.
     group1->process();
     group2->process();
     
    -// The user may insert code to be run asynchronously with group processing...
    -
    -// Call the groups' sync functions (with default block = true argument) to wait for processing to finish and fire off events.
    -group1->sync();
    -group2->sync();
    -
     // When the groups are no longer needed, they may be released with the usual release method.
     group1->release();
     group2->release();
    -

    -
    -

    +

    +
    +

    Applying Damage to Actors and Families

    -Damage in NvBlastTk uses the same damage program scheme as the low-level SDK (see Damage and Fracturing). One passes the program (NvBlastDamageProgram), damage descriptor (program-dependent), and material (also program-dependent) to a TkActor::damage function. Ultimately, the damage descriptor and material data are all parameters used by the damage program. The distinction is that the damage descriptor should describe properties of the thing doing the damage, while the material should describe properties of the actor (the thing being damaged). The interpretation of this data is entirely up to the program's functions, however.

    -For convenience, the user may set a default material in the actor's family. This assumes, of course, that the material parameters for this default are compatible with the program being used to damage the family's actors.

    -Examples of the three TkActor damage methods are given below.

    -
    -

    + Damage in NvBlastTk uses the same damage program scheme as the low-level SDK (see Damage and Fracturing). One passes the program (NvBlastDamageProgram), damage descriptor (program-dependent), and material (also program-dependent) to a TkActor::damage function. Ultimately, the damage descriptor and material data are all parameters used by the damage program. The distinction is that the damage descriptor should describe properties of the thing doing the damage, while the material should describe properties of the actor (the thing being damaged). The interpretation of this data is entirely up to the program's functions, however.

    +For convenience, the user may set a default material in the actor's family. This assumes, of course, that the material parameters for this default are compatible with the program being used to damage the family's actors.

    +Examples of the three TkActor damage methods are given below.

    +
    +

    Multiple Damage Descriptors using NvBlastProgramParams

    -N.B. - with this method of damage, the lifetime of the NvBlastProgramParams must extend at least until the TkGroup::sync call for the actor.

    -

    NvBlastDamageProgram program =
    + N.B. - with this method of damage, the lifetime of the NvBlastProgramParams must extend at least until the TkGroup::sync call for the actor.

    +

    NvBlastDamageProgram program =
     {
         myGraphShaderFunction,      // A function with the NvBlastGraphShaderFunction signature
         mySubgraphShaderFunction    // A function with the NvBlastSubgraphShaderFunction signature
    @@ -241,38 +228,34 @@ damageDescs[1].maxRadius = 5.0f;
     // The example material "Material" is modeled after NvBlastExtMaterial in the NvBlastExtShaders extension
     Material material;
     
    -material.singleChunkThreshold = 1.0f;
    -material.graphChunkThreshold = 1.0f;
    -material.bondTangentialThreshold = 0.5f;
    -material.bondNormalThreshold = 0.25f;
    -material.damageAttenuation = 0.75f
    +material.health = 10.0f;
    +material.minDamageThreshold = 0.1f;
    +material.maxDamageThreshold = 0.8f;
     
     // Set the damage params struct
     NvBlastProgramParams params = { damageDescs, 2, &material };
     
     // Apply damage
     actor->damage(program, &params);    // params must be kept around until TkGroup::sync is called!
    -

    -
    -

    +

    +
    +

    Single Damage Descriptor with Default TkFamily Material

    -This method of damage copies the damage descriptor into a buffer, so the user need not hold onto a copy after the damage function call. Only one damage descriptor may be passed in at once.

    -To use this method, the user must first set a default material in the actor's family. For example:

    -

    // The example material "Material" is modeled after NvBlastExtMaterial in the NvBlastExtShaders extension
    + This method of damage copies the damage descriptor into a buffer, so the user need not hold onto a copy after the damage function call. Only one damage descriptor may be passed in at once.

    +To use this method, the user must first set a default material in the actor's family. For example:

    +

    // The example material "Material" is modeled after NvBlastExtMaterial in the NvBlastExtShaders extension
     Material material;
     
    -material.singleChunkThreshold = 1.0f;
    -material.graphChunkThreshold = 1.0f;
    -material.bondTangentialThreshold = 0.5f;
    -material.bondNormalThreshold = 0.25f;
    -material.damageAttenuation = 0.75f
    +material.health = 10.0f;
    +material.minDamageThreshold = 0.1f;
    +material.maxDamageThreshold = 0.8f;
     
     // Set the default material used by the material-less TkActor::damage call
     actor->getFamily().setMaterial(&material);
    -

    -N.B. the lifetime of the material set must extend at least until the TkGroup::sync call for the actor.

    -Then to apply damage, use:

    -

    +N.B. the lifetime of the material set must extend at least until the TkGroup::sync call for the actor.

    +Then to apply damage, use:

    +

    NvBlastDamageProgram program =
     {
         myGraphShaderFunction,      // A function with the NvBlastGraphShaderFunction signature
         mySubgraphShaderFunction    // A function with the NvBlastSubgraphShaderFunction signature
    @@ -290,22 +273,22 @@ damageDesc.maxRadius = 1.0f;
     
     // Apply damage
     actor->damage(program, &damageDesc, (uint32_t)sizeof(RadialDamageDesc));
    -

    -
    -

    +

    +
    +

    Single Damage Descriptor with Specified Material

    -This method is just like the one above, except that the user has the opportunity to override the material used during damage.

    -N.B. - the lifetime of the material passed in must extend at least until the TkGroup::sync call for the actor.

    -This call is just like the one above with an extra material parameter:

    -

    actor->damage(program, &damageDesc, (uint32_t)sizeof(RadialDamageDesc), &material);
    -

    -
    -

    + This method is just like the one above, except that the user has the opportunity to override the material used during damage.

    +N.B. - the lifetime of the material passed in must extend at least until the TkGroup::sync call for the actor.

    +This call is just like the one above with an extra material parameter:

    +

    actor->damage(program, &damageDesc, (uint32_t)sizeof(RadialDamageDesc), &material);
    +

    +
    +

    Joints

    -Joints in NvBlastTk are abstract representations of physical joints. When joints become active, change the actors they join, or become unreferenced (the actors they join disappear), the user will receive notification via a TkJointUpdateEvent (see Events).

    -Joints may be defined as a part of a TkAsset, in which case they are consisdered "internal" joints. (See Creating a TkAsset.) Since the first instance of a TkAsset is a single TkActor, internal joints are defined between chunks within the same actor. Therefore they are not active (there is no point in joining two locations in a single rigid body). Upon splitting into multiple actors, however, an internal joint's chunks may now belong to two different TkActors. When this happens, the user will receive a TkJointUpdateEvent of subtype TkJointUpdateEvent::External. The event contains a pointer to the TkJoint, and from that the user has access to the information needed to create a physical joint between the rigid bodies that correspond to the joined TkActors.

    -Joints may also be created externally at runtime, using the TkFramework::createJoint function. A joint created this way must be between two different TkActors. Because of this, the joint is immediately considered active, and so no TkJointUpdateEvent is generated from its creation. The user should create a physical joint to correspond to the joint returned by createJoint. An externally created joint of this type has another distinguishing characteristic: it may join an actor to "the world," or "Newtonial Reference Frame" (NRF). To do this, one TkFamily pointer in the joint descriptor is set to NULL. Examples are given below.

    -

    TkJointDesc desc;
    + Joints in NvBlastTk are abstract representations of physical joints. When joints become active, change the actors they join, or become unreferenced (the actors they join disappear), the user will receive notification via a TkJointUpdateEvent (see Events).

    +Joints may be defined as a part of a TkAsset, in which case they are consisdered "internal" joints. (See Creating a TkAsset.) Since the first instance of a TkAsset is a single TkActor, internal joints are defined between chunks within the same actor. Therefore they are not active (there is no point in joining two locations in a single rigid body). Upon splitting into multiple actors, however, an internal joint's chunks may now belong to two different TkActors. When this happens, the user will receive a TkJointUpdateEvent of subtype TkJointUpdateEvent::External. The event contains a pointer to the TkJoint, and from that the user has access to the information needed to create a physical joint between the rigid bodies that correspond to the joined TkActors.

    +Joints may also be created externally at runtime, using the TkFramework::createJoint function. A joint created this way must be between two different TkActors. Because of this, the joint is immediately considered active, and so no TkJointUpdateEvent is generated from its creation. The user should create a physical joint to correspond to the joint returned by createJoint. An externally created joint of this type has another distinguishing characteristic: it may join an actor to "the world," or "Newtonial Reference Frame" (NRF). To do this, one TkFamily pointer in the joint descriptor is set to NULL. Examples are given below.

    +

    TkJointDesc desc;
     desc.families[0] = &actor0->getFamily();    // Assume we have a valid actor0 pointer
     desc.chunkIndices[0] = 1;   // This chunk *must* be a support chunk in the asset that created desc.families[0]
     desc.attachPositions[0] = physx::PxVec3(1.f, 2.f; 3.f); // The attach position is in asset space
    @@ -326,23 +309,23 @@ desc.attachPositions[1] = physx::PxVec3(0.f, 0.f, 10.0f);   // Create the external joint which joins actor0 to the world
     TkJoint* jointNRF = framework->createJoint(desc);
    -

    -
    -

    +

    +
    +

    Releasing Joints

    -TkJoints are not released by Blast™, except when the TkFramework is released. Otherwise, the user is responsible for releasing TkJoints after they become unreferenced. This is facilitated by the Unreferenced subtype of the TkJointUpdateEvent. After receiving this event for joint, the user may choose to release, using the typical TkObject::release() method.

    -

    joint->release();
    -

    -Note, this method can be called at any time, even before the joint is unreferenced. When called, it will remove its references to its attached actors first, causing the joint to then become unreferenced. For example, if the user wishes to break a physical joint in their simulation, they can then release the corresponding TkJoint.

    -It should be mentioned, however, that joints created with an asset are allocated differently from external joints created using TkFramework::createJoint. Internal joints created from the joint descriptors in a TkAsset are block allocated with every TkFamily that instances the asset. Calling the release() method on those joints will remove any remaining references to them (as mentioned above), but will not perform any deallocation. Only when the TkFamily itself is released will the internal joint memory for that family be released. This is true even if the internal joints become "external" from actor splitting. Joints that become external are still associated with a single family and their memory still resides with that family.

    -On the other hand, joints that start out life external by way of the TkFramework::createJoint function have a separate allocation, and do not have memory tied to any TkFamily (even if both actors joined are in the same family). Releasing a family holding one of the actors in such a "purely external" joint will trigger a TkJointUpdateEvent of subtype Unreferenced, however, signalling that the joint is ready for user release.

    -
    -

    + TkJoints are not released by Blast™, except when the TkFramework is released. Otherwise, the user is responsible for releasing TkJoints after they become unreferenced. This is facilitated by the Unreferenced subtype of the TkJointUpdateEvent. After receiving this event for joint, the user may choose to release, using the typical TkObject::release() method.

    +

    joint->release();
    +

    +Note, this method can be called at any time, even before the joint is unreferenced. When called, it will remove its references to its attached actors first, causing the joint to then become unreferenced. For example, if the user wishes to break a physical joint in their simulation, they can then release the corresponding TkJoint.

    +It should be mentioned, however, that joints created with an asset are allocated differently from external joints created using TkFramework::createJoint. Internal joints created from the joint descriptors in a TkAsset are block allocated with every TkFamily that instances the asset. Calling the release() method on those joints will remove any remaining references to them (as mentioned above), but will not perform any deallocation. Only when the TkFamily itself is released will the internal joint memory for that family be released. This is true even if the internal joints become "external" from actor splitting. Joints that become external are still associated with a single family and their memory still resides with that family.

    +On the other hand, joints that start out life external by way of the TkFramework::createJoint function have a separate allocation, and do not have memory tied to any TkFamily (even if both actors joined are in the same family). Releasing a family holding one of the actors in such a "purely external" joint will trigger a TkJointUpdateEvent of subtype Unreferenced, however, signalling that the joint is ready for user release.

    +
    +

    Events

    -NvBlastTk uses events to communicate the results of actor splitting, joint updates from actor splitting, and fracture event buffers that can be used to synchronize fracturing between multiple clients.

    -Events are broadcast to listeners which implement the TkEventListener interface. Listeners are held by TkFamily objects. During a TkGroup::sync call (see Groups), relevant events are broadcast to the listeners in the families associated with the actors in the group.

    -A typical user's receiver implementation might take on the form shown below.

    -

    class MyActorAndJointListener : public TkEventListener
    + NvBlastTk uses events to communicate the results of actor splitting, joint updates from actor splitting, and fracture event buffers that can be used to synchronize fracturing between multiple clients.

    +Events are broadcast to listeners which implement the TkEventListener interface. Listeners are held by TkFamily objects. During a TkGroup::sync call (see Groups), relevant events are broadcast to the listeners in the families associated with the actors in the group.

    +A typical user's receiver implementation might take on the form shown below.

    +

    class MyActorAndJointListener : public TkEventListener
     {
         // TkEventListener interface
         void receive(const TkEvent* events, uint32_t eventCount) override
    @@ -400,31 +383,31 @@ A typical user's receiver implementation might take on the form shown below.

    } } }; -

    -Whenever a new TkActor is created by the user (via TkFramework::createActor, see Instancing a TkAsset: Creation of a TkActor and a TkFamily), its newly-made family should be given whatever listeners the user wishes to attach. For example,

    -

    TkActor* actor = framework->createActor(actorDesc);
    +

    +Whenever a new TkActor is created by the user (via TkFramework::createActor, see Instancing a TkAsset: Creation of a TkActor and a TkFamily), its newly-made family should be given whatever listeners the user wishes to attach. For example,

    +

    TkActor* actor = framework->createActor(actorDesc);
     
     actor->getFamily().addListener(myListener); //  myListener is an object which implements TkEventListener (see MyActorAndJointListener above, for example)
    -

    -Listeners may also be removed from families at any time.

    -
    -

    +

    +Listeners may also be removed from families at any time.

    +
    +

    Object and Type Identification

    -NvBlastTk objects that are derived from TkIdentifiable (TkAsset, TkFamily, and TkGroup) support an object and class (type) identification system. The TkIdentifiable interfaces setID and getID allow the user to set and access an NvBlastID for each object. The NvBlastID is a 128-bit identifier. TkIdentifiable objects are tracked by the TkFramework, which may be used to look up an object by its NvBlastID.

    -Upon creation, TkIdentifiable objects are given a GUID, a unique NvBlastID. The is welcome to change the object's guid at any time, with the restriction that the GUID cannot be all zero bytes.

    -With an object's GUID, one may look up the object using the TkFramework function findObjectByID:

    -

    TkIdentifiable* object = framework->findObjectByID(id); // id = an NvBlastID GUID
    -

    -If the object is found, a non-NULL pointer will be returned.

    -TkIdentifiable-derived classes also have a class identification system, the TkType interface. From an individual object one may use the TkIdentifiable interface getType to access the class's TkType interface. Alternatively, one may use the TkFramework getType function with TkTypeIndex::Enum argument. For example, to get the TkType interface for the TkAsset class, use

    -

    const TkType* assetType = framework->getType(TkTypeIndex::Asset);
    -

    -The type interface may be used:

    -

      + NvBlastTk objects that are derived from TkIdentifiable (TkAsset, TkFamily, and TkGroup) support an object and class (type) identification system. The TkIdentifiable interfaces setID and getID allow the user to set and access an NvBlastID for each object. The NvBlastID is a 128-bit identifier. TkIdentifiable objects are tracked by the TkFramework, which may be used to look up an object by its NvBlastID.

      +Upon creation, TkIdentifiable objects are given a GUID, a unique NvBlastID. The is welcome to change the object's guid at any time, with the restriction that the GUID cannot be all zero bytes.

      +With an object's GUID, one may look up the object using the TkFramework function findObjectByID:

      +

      TkIdentifiable* object = framework->findObjectByID(id); // id = an NvBlastID GUID
      +

      +If the object is found, a non-NULL pointer will be returned.

      +TkIdentifiable-derived classes also have a class identification system, the TkType interface. From an individual object one may use the TkIdentifiable interface getType to access the class's TkType interface. Alternatively, one may use the TkFramework getType function with TkTypeIndex::Enum argument. For example, to get the TkType interface for the TkAsset class, use

      +

      const TkType* assetType = framework->getType(TkTypeIndex::Asset);
      +

      +The type interface may be used:

      +

      • to access class-specific object lists in the framework,
      • identify the class of a TkIdentifiable obtained through ID lookup or deserialization, or
      • to obtain the class's name and format version number.
      -

      -For example, to access a list of all families:

      -

      // Get the TkFamily type interface
      +

      +For example, to access a list of all families:

      +

      // Get the TkFamily type interface
       const TkType* familyType = framework->getType(TkTypeIndex::Family);
       
       // Get the family count to allocate a buffer
      @@ -433,9 +416,9 @@ std::vector<TkIdentifiable*> families(familyCount);
       
       // Write the families to the buffer
       const uint32_t familiesFound = framework->getObjects(families.data(), familyCount, familyType);
      -

      -In the above code, the values of familyCount and familiesFound should be equal. An alternative usage of TkFramework::getObjects allows the user to write to a (potentially) smaller buffer, iteratively. For example:

      -

      uint32_t familiesFound;
      +

      +In the above code, the values of familyCount and familiesFound should be equal. An alternative usage of TkFramework::getObjects allows the user to write to a (potentially) smaller buffer, iteratively. For example:

      +

      uint32_t familiesFound;
       uint32_t totalFamilyCount = 0;
       do
       {
      @@ -447,9 +430,9 @@ uint32_t totalFamilyCount = 0;
           // Process the families found so far
           myProcessFamiliesFunction(familyBuffer, familiesFound);
       } while (familiesFound == 16);
      -

      -To use the type interface to identify a class, perhaps after serialization or lookup by ID, one may do something like:

      -

      \\ Assume we have a TkIdentifiable pointer called "object"
      +

      +To use the type interface to identify a class, perhaps after serialization or lookup by ID, one may do something like:

      +

      \\ Assume we have a TkIdentifiable pointer called "object"
       
       // Get the type interfaces of interest
       const TkType* assetType = framework->getType(TkTypeIndex::Asset);
      @@ -468,11 +451,11 @@ To use the type interface to identify a class, perhaps after serialization or lo
       
           // Process the object as a TkFamily
       }
      -

      -A TkIdentifiable-derived class may be queried for its name using the TkType interface, using TkType::getName(). This function returns a const char pointer to a string.

      -Finally, one may query the class for its current format version number using TkType::getVersion().

      -
      -

      +

      +A TkIdentifiable-derived class may be queried for its name using the TkType interface, using TkType::getName(). This function returns a const char pointer to a string.

      +Finally, one may query the class for its current format version number using TkType::getVersion().

      +
      +

    -
    -

    +
    +

    Linking and Header Files

    -To use the low-level Blast™ SDK, the application need only inlclude the header NvBlast.h, found in the top-level include folder, and link against the appropriate version of the NvBlast library. Depending on the platform and configuration, various suffixes will be added to the library name. The general naming scheme is

    -NvBlast(config)(arch).(ext)

    -(config) is DEBUG, CHECKED, OR PROFILE for the corresponding configurations. For a release configuration there is no (config) suffix.

    -(arch) is _x86 or _x64 for Windows 32- and 64-bit builds, respectively, and empty for non-Windows platforms.

    -(ext) is .lib for static linking and .dll for dynamic linking on Windows. On XBoxOne it is .lib, and on PS4 it is .a.

    -
    -

    + To use the low-level Blast™ SDK, the application need only inlclude the header NvBlast.h, found in the top-level include folder, and link against the appropriate version of the NvBlast library. Depending on the platform and configuration, various suffixes will be added to the library name. The general naming scheme is

    +NvBlast(config)(arch).(ext)

    +(config) is DEBUG, CHECKED, OR PROFILE for the corresponding configurations. For a release configuration there is no (config) suffix.

    +(arch) is _x86 or _x64 for Windows 32- and 64-bit builds, respectively, and empty for non-Windows platforms.

    +(ext) is .lib for static linking and .dll for dynamic linking on Windows. On XBoxOne it is .lib, and on PS4 it is .a.

    +
    +

    Creating an Asset from a Descriptor (Authoring)

    -The NvBlastAsset is an opaque type pointing to an object constructed by Blast™ in memory allocated by the user. To create an asset from a descriptor, use the function NvBlastAssetCreate. See the function documentation for a description of its parameters.

    -N.B., there are strict rules for the ordering of chunks with an asset, and also conditions on the chunks marked as "support" (using the NvBlastChunkDesc::SupportFlag). See the function documentation for these conditions. NvBlastAssetCreate does not reorder chunks or modify support flags to meet these conditions. If the conditions are not met, NvBlastAssetCreate fails and returns NULL. However, Blast™ provides helper functions to reorder chunk descriptors and modify the support flags within those descriptors so that they are valid for asset creation. The helper functions return a mapping from the original chunk ordering to the new chunk ordering, so that corresponding adjustments or mappings may be made for graphics and other data the user associates with chunks.

    -Example code is given below.

    -

    std::vector<NvBlastChunkDesc> chunkDescs;
    + The NvBlastAsset is an opaque type pointing to an object constructed by Blast™ in memory allocated by the user. To create an asset from a descriptor, use the function NvBlastAssetCreate. See the function documentation for a description of its parameters.

    +N.B., there are strict rules for the ordering of chunks with an asset, and also conditions on the chunks marked as "support" (using the NvBlastChunkDesc::SupportFlag). See the function documentation for these conditions. NvBlastAssetCreate does not reorder chunks or modify support flags to meet these conditions. If the conditions are not met, NvBlastAssetCreate fails and returns NULL. However, Blast™ provides helper functions to reorder chunk descriptors and modify the support flags within those descriptors so that they are valid for asset creation. The helper functions return a mapping from the original chunk ordering to the new chunk ordering, so that corresponding adjustments or mappings may be made for graphics and other data the user associates with chunks.

    +Example code is given below. Throughout, we assume the user has defined a logging function called logFn, with the signature of NvBlastLog. In all cases, the log function is optional, and NULL may be passed in its place.

    +

    // Create chunk descriptors
    +std::vector<NvBlastChunkDesc> chunkDescs;
     chunkDescs.resize( chunkCount );    // chunkCount > 0
     
     chunkDescs[0].parentChunkIndex = UINT32_MAX;    // invalid index denotes a chunk hierarchy root
    @@ -67,8 +68,9 @@ chunkDescs[1].volume = 1.0; // Unit volume
     chunkDescs[1].flags = NvBlastChunkDesc::SupportFlag; // This chunk should be represented in the support graph
     chunkDescs[1].ID = 1;
     
    -// ... etc.
    +// ... etc. for all chunks
     
    +// Create bond descriptors
     std::vector<NvBlastBondDesc> bondDescs;
     bondDescs.resize( bondCount );  // bondCount > 0
     
    @@ -84,7 +86,11 @@ bondDescs[0].bond.m_centroid[2] = 3.f;
     bondDescs[0].m_userData = 0;    // this can be used to tell the user more information about this
                                     // bond for example to create a joint when this bond breaks
     
    -// ... etc.
    +bondDescs[1].chunkIndices[0] = 1;
    +bondDescs[1].chunkIndices[1] = ~0;  // ~0 (UINT32_MAX) is the "invalid index."  This creates a world bond
    +// ... etc. for bondDescs[1], all other fields are filled in as usual
    +
    +// ... etc. for all bonds
     
     // Set the fields of the descriptor
     NvBlastAssetDesc assetDesc;
    @@ -95,45 +101,45 @@ assetDesc.// Now ensure the support coverage in the chunk descriptors is exact, and the chunks are correctly ordered
     std::vector<char> scratch( chunkCount * sizeof(NvBlastChunkDesc) ); // This is enough scratch for both NvBlastEnsureAssetExactSupportCoverage and NvBlastReorderAssetDescChunks
    -NvBlastEnsureAssetExactSupportCoverage( chunkDescs.data(), chunkCount, scratch.data(), nullptr );
    +NvBlastEnsureAssetExactSupportCoverage( chunkDescs.data(), chunkCount, scratch.data(), logFn );
     std::vector<uint32_t> map(chunkCount);  // Will be filled with a map from the original chunk descriptor order to the new one
    -NvBlastReorderAssetDescChunks( chunkDescs.data(), chunkDescs, bondDescs.data(), bondCount, map, scratch.data(), nullptr );
    +NvBlastReorderAssetDescChunks( chunkDescs.data(), chunkCount, bondDescs.data(), bondCount, map, true, scratch.data(), logFn );
     
     // Create the asset
     scratch.resize( NvBlastGetRequiredScratchForCreateAsset( &assetDesc ) );    // Provide scratch memory for asset creation
     void* mem = malloc( NvBlastGetAssetMemorySize( &assetDesc ) );      // Allocate memory for the asset object
    -NvBlastAsset* asset = NvBlastCreateAsset( mem, &assetDesc, scratch.data(), nullptr );   // the log function (last argument) is optional
    -

    -
    - It should be noted that the geometric information (centroid, volume, area, normal) in chunks and bonds is only used by damage shader functions (see Damage Shaders (NvBlastExtShaders)). Depending on the shader, some, all, or none of the geometric information will be needed. The user may write damage shader functions that interpret this data in any way they wish.

    -
    -

    -Cloning an Asset (Serialization and Deserialization)

    -To clone an asset, or equivalently serialize and deserialize it (as long as the deserialized asset is being created on a host with the same data version and endianness), one only needs to copy the memory associated with the NvBlastAsset.

    -

    uint32_t assetSize = NvBlastAssetGetSize( data );
    +NvBlastAsset* asset = NvBlastCreateAsset( mem, &assetDesc, scratch.data(), logFn );
    +

    +
    + It should be noted that the geometric information (centroid, volume, area, normal) in chunks and bonds is only used by damage shader functions (see Damage Shaders (NvBlastExtShaders)). Depending on the shader, some, all, or none of the geometric information will be needed. The user may write damage shader functions that interpret this data in any way they wish.

    +
    +

    +Cloning an Asset

    + To clone an asset, one only needs to copy the memory associated with the NvBlastAsset.

    +

    uint32_t assetSize = NvBlastAssetGetSize( asset );
     
    -NvBlastAsset* newAsset = (NvBlastAsset*)malloc(assetSize);  // NOTE: the memory buffer <em> must <\em> be 16-byte aligned!
    +NvBlastAsset* newAsset = (NvBlastAsset*)malloc(assetSize);  // NOTE: the memory buffer MUST be 16-byte aligned!
     memcpy( newAsset, asset, assetSize );   // this data may be copied into a buffer, stored to a file, etc.
    -

    -N.B. the comment after the malloc call above. NvBlastAsset memory must be 16-byte aligned.

    -
    -

    +

    +N.B. the comment after the malloc call above. NvBlastAsset memory must be 16-byte aligned.

    +
    +

    Releasing an Asset

    -Blast&tm low-level does no internal allocation; since the memory is allocated by the user, one simply has to free the memory they've allocated. The asset pointer returned by NvBlastCreateAsset has the same numerical value as the mem block passed in (if the function is successful, or NULL otherwise). So releasing an asset done as follows:

    -

    free( asset );
    -

    -
    -

    + Blast&tm low-level does no internal allocation; since the memory is allocated by the user, one simply has to free the memory they've allocated. The asset pointer returned by NvBlastCreateAsset has the same numerical value as the mem block passed in (if the function is successful, or NULL otherwise). So releasing an asset with memory allocate by malloc is simply done with a call to free:

    +

    free( asset );
    +

    +
    +

    Creating Actors and Families

    -Actors live within a family created from asset data. To create an actor, one must first create a family. This family is used by the initial actor created from the asset, as well as all of the descendent actors created by recursively fracturing the initial actor. Like assets, family allocation is done by the user.

    -To create a family, use:

    -

    // Allocate memory for the family object - this depends on the asset being represented by the family.
    -void* mem = malloc( NvBlastAssetGetFamilyMemorySize( &asset ) );
    + Actors live within a family created from asset data. To create an actor, one must first create a family. This family is used by the initial actor created from the asset, as well as all of the descendent actors created by recursively fracturing the initial actor. As with assets, family allocation is done by the user.

    +To create a family, use:

    +

    // Allocate memory for the family object - this depends on the asset being represented by the family.
    +void* mem = malloc( NvBlastAssetGetFamilyMemorySize( asset, logFn ) );
     
    -NvBlastFamily* family = NvBlastAssetCreateFamily( mem, &asset, nullptr );
    -

    -When an actor is first created from an asset, it represents the root of the chunk hierarchy, that is the unfractured object. To create this actor, use:

    -

    // Set the fields of the descriptor
    +NvBlastFamily* family = NvBlastAssetCreateFamily( mem, asset, logFn );
    +

    +When an actor is first created from an asset, it represents the root of the chunk hierarchy, that is the unfractured object. To create this actor, use:

    +

    // Set the fields of the descriptor
     NvBlastActorDesc actorDesc;
     actorDesc.asset = asset;    // point to a valid asset
     actorDesc.initialBondHealth = 1.0f;  // this health value will be given to all bonds
    @@ -143,84 +149,84 @@ actorDesc.initialChunkHealth = 1.0f; // this health value
     std::vector<char> scratch( NvBlastFamilyGetRequiredScratchForCreateFirstActor( &actorDesc ) );
     
     // Create the first actor
    -NvBlastActor* actor = NvBlastFamilyCreateFirstActor( family, &actorDesc, scratch.data(), nullptr ); // ready to be associated with physics and graphics by the user
    -

    -
    -

    +NvBlastActor* actor = NvBlastFamilyCreateFirstActor( family, &actorDesc, scratch.data(), logFn ); // ready to be associated with physics and graphics by the user +

    +
    +

    Copying Actors (Serialization and Deserialization)

    -There are two forms of serialization: family serialization and single actor serialization. Family serialization is extremely fast as it only requires a single memory copy. All actors in the family may be saved, loaded, or copied at once in this way.

    -
    -

    -Family Serialization

    -To serialize a family, use the family pointer which may be retrieved from any active actor in the family if needed, using the NvBlastActorGetFamily function:

    -

    const NvBlastFamily* family = NvBlastActorGetFamily( &actor, nullptr );
    -

    -Then the size of the family may be obtained using:

    -

    size_t size = NvBlastFamilyGetSize( family, nullptr );
    -

    -Now this memory may be copied, saved to disk, etc. To clone the family, for example, we can duplicate the memory:

    -

    std::vector<char> buffer( size );
    + There are two ways to copy NvBlastActors: cloning an NvBlastFamily, and single-actor serialization. Cloning an NvBlastFamily is extremely fast as it only requires a single memory copy. All actors in the family may be saved, loaded, or copied at once in this way.

    +
    +

    +Cloning a Family

    + To clone a family, use the family pointer which may be retrieved from any active actor in the family if needed, using the NvBlastActorGetFamily function:

    +

    const NvBlastFamily* family = NvBlastActorGetFamily( &actor, logFn );
    +

    +Then the size of the family may be obtained using:

    +

    size_t size = NvBlastFamilyGetSize( family, logFn );
    +

    +Now this memory may be copied, saved to disk, etc. To clone the family, for example, we can duplicate the memory:

    +

    std::vector<char> buffer( size );
     NvBlastFamily* family2 = reinterpret_cast<NvBlastFamily*>( buffer.data() );
     memcpy( family2, family, size );
    -

    -N.B. If this data has been serialized from an external source, the family will not contain a valid reference to its associated asset. The user must set the family's asset. The family does however contain the asset's GUID, to help the user match the correct asset to the family. So one way of restoring the asset to the family follows:

    -

    const NvBlastGUID guid = NvBlastFamilyGetAssetGUID( family2, nullptr );
    +

    +N.B. If this data has been serialized from an external source, the family will not contain a valid reference to its associated asset. The user must set the family's asset. The family does however contain the asset's ID, to help the user match the correct asset to the family. So one way of restoring the asset to the family follows:

    +

    const NvBlastGUID guid = NvBlastFamilyGetAssetID( family2, logFn );
     // ... here the user must retrieve the asset using the GUID or by some other means
    -NvBlastFamilySetAsset( family2, asset, nullptr );
    -

    -The data in family2 will contain the same actors as the original family. To access them, use:

    -

    uint32_t actorCount = NvBlastFamilyGetActorCount( family2, nullptr );
    +NvBlastFamilySetAsset( family2, asset, logFn );
    +

    +The data in family2 will contain the same actors as the original family. To access them, use:

    +

    uint32_t actorCount = NvBlastFamilyGetActorCount( family2, logFn );
     std::vector<NvBlastActor*> actors( actorCount );
    -uint32_t actorsWritten = NvBlastFamilyGetActors( actors.data(), actorCount, family2, nullptr );
    -

    -In the code above, actorsWritten should equal actorCount.

    -
    -

    +uint32_t actorsWritten = NvBlastFamilyGetActors( actors.data(), actorCount, family2, logFn ); +

    +In the code above, actorsWritten should equal actorCount.

    +
    +

    Single Actor Serialization

    -To perform single-actor serialization, first find the buffer size required to store the serialization data:

    -

    size_t bufferSize = NvBlastActorGetSerializationSize( actor, nullptr );
    -

    -If you want to use an upper bound which will be large enough for any actor in a family, you may use:

    -

    size_t bufferSize = NvBlastAssetGetActorSerializationSizeUpperBound( asset, nullptr );
    -

    -Then create a buffer of that size and use NvBlastActorSerialize to write to the buffer:

    -

    std::vector<char> buffer( bufferSize );
    -size_t bytesWritten = NvBlastActorSerialize( buffer, bufferSize, actor, nullptr );
    -

    -To deserialize the buffer, an appropriate family must be created. It must not already hold a copy of the actor. It must be formed using the correct asset (the one that originally created the actor):

    -

    NvBlastFamily* family = NvBlastAssetCreateFamily( asset, malloc, nullptr );
    -

    -Then deserialize into the family:

    -

    NvBlastActor* newActor = NvBlastFamilyDeserializeActor( family, buffer.data(), nullptr );
    -

    -If newActor is not NULL, then the actor was successfully deserialized.

    -
    -

    + To perform single-actor serialization, first find the buffer size required to store the serialization data:

    +

    +If you want to use an upper bound which will be large enough for any actor in a family, you may use:

    +

    size_t bufferSize = NvBlastAssetGetActorSerializationSizeUpperBound( asset, logFn );
    +

    +Then create a buffer of that size and use NvBlastActorSerialize to write to the buffer:

    +

    std::vector<char> buffer( bufferSize );
    +size_t bytesWritten = NvBlastActorSerialize( buffer, bufferSize, actor, logFn );
    +

    +To deserialize the buffer, an appropriate family must be created. It must not already hold a copy of the actor. It must be formed using the correct asset (the one that originally created the actor):

    +

    void* mem = malloc( NvBlastAssetGetFamilyMemorySize( asset, logFn ) );
    +NvBlastFamily* family = NvBlastAssetCreateFamily( mem, asset, logFn );
    +

    +Then deserialize into the family:

    +

    NvBlastActor* newActor = NvBlastFamilyDeserializeActor( family, buffer.data(), logFn );
    +

    +If newActor is not NULL, then the actor was successfully deserialized.

    +
    +

    Deactivating an Actor

    -Actors may not be released in the usual sense of deallocation. This is because actors' memory is stored as a block within the owning family. The memory is only released when the family is released. However, one may deactivate an actor using NvBlastActorDeactivate. This clears the actor's chunk lists and marks it as invalid, effectively disassociating it from the family. The user should consider this actor to be destroyed.

    -

    bool success = NvBlastActorDeactivate( actor ); // actor should always be a pointer, as it is an opaque type
    -

    -
    -

    + Actors may not be released in the usual sense of deallocation. This is because actors' memory is stored as a block within the owning family. The memory is only released when the family is released. However, one may deactivate an actor using NvBlastActorDeactivate. This clears the actor's chunk lists and marks it as invalid, effectively disassociating it from the family. The user should consider this actor to be destroyed.

    +

    +
    +

    Releasing a family

    -As mentioned above, releasing an actor does not actually do any deallocation; it simply invalidates the actor within its family. To actually deallocate memory, you must deallocate the family. Note, this will invalidate all actors in the family. This is a fast way to delete all actors that were created from repeated fracturing of a single instance. As with NvBlastAsse, memory is allocated by the user, so to release the family simply free that memory:

    -

    free( family );
    -

    -The family will not be automatically released when all actors within it are invalidated using NvBlastActorDeactivate. However, the user may keep track of the number of active actors in a family using

    -

    uint32_t actorCount = NvBlastFamilyGetActorCount( family, nullptr );
    -

    -The result of the call above, actually a reference count for the family, is accurate even if actors are created and deleted from different threads.

    -
    -

    + As mentioned above, releasing an actor does not actually do any deallocation; it simply invalidates the actor within its family. To actually deallocate memory, you must deallocate the family. Note, this will invalidate all actors in the family. This is a fast way to delete all actors that were created from repeated fracturing of a single instance. As with NvBlastAsset, memory is allocated by the user, so to release a family with memory allocated by malloc, simply free that memory with free:

    +

    free( family );
    +

    +The family will not be automatically released when all actors within it are invalidated using NvBlastActorDeactivate. However, the user may query the number of active actors in a family using

    +

    uint32_t actorCount = NvBlastFamilyGetActorCount( family, logFn );
    +

    +
    +

    Damage and Fracturing

    -Damaging and fracturing is a staged process. In a first step, a NvBlastDamageProgram creates lists of Bonds and Chunks to damage - so called Fracture Commands. The lists are created from input specific to the NvBlastDamageProgram.
    - NvBlastDamagePrograms are composed of a NvBlastGraphShaderFunction and a NvBlastSubgraphShaderFunction operating on support graphs (support chunks and bonds) and disconnected subsupport chunks respectively. An implementer can freely define the shader functions and paramters. Different functions can have the effect of emulating different physical materials.
    - Blast™ provides example implementations of such functions in Damage Shaders (NvBlastExtShaders), see also NvBlastExtDamageShaders.h. The NvBlastDamageProgram is used through NvBlastActorGenerateFracture that will provide the necessary internal data for the NvBlastActor being processed. The shader functions see the internal data as NvBlastGraphShaderActor and NvBlastSubgraphShaderActor respectively.

    -The second stage is carried out with NvBlastActorApplyFracture. This function takes the previously generated Fracture Commands and applies them to the NvBlastActor. The result of every applied command is reported as a respective Fracture Event if requested.

    -Fracture Commands and Fracture Events both are represented by NvBlastFractureBuffers. The splitting of the actor into child actors is not done until the third stage, NvBlastActorSplit, is called. Fractures may be repeatedly applied to an actor before splitting.

    -The NvBlastActorGenerateFracture, NvBlastActorApplyFracture and NvBlastActorSplit functions are profiled in Profile configurations. This is done through a pointer to a NvBlastTimers struct passed into the functions. If this pointer is not NULL, then timing values will be accumulated in the referenced struct.

    -The following example illustrates the process:

    -

    // Step one: Generate Fracture Commands
    + Damaging and fracturing is a staged process. In a first step, a NvBlastDamageProgram creates lists of Bonds and Chunks to damage - so called Fracture Commands. The lists are created from input specific to the NvBlastDamageProgram.
    + NvBlastDamagePrograms are composed of a NvBlastGraphShaderFunction and a NvBlastSubgraphShaderFunction operating on support graphs (support chunks and bonds) and disconnected subsupport chunks respectively. An implementer can freely define the shader functions and parameters. Different functions can have the effect of emulating different physical materials.
    + Blast™ provides reference implementations of such functions in Damage Shaders (NvBlastExtShaders), see also NvBlastExtDamageShaders.h. The NvBlastDamageProgram is used through NvBlastActorGenerateFracture that will provide the necessary internal data for the NvBlastActor being processed. The shader functions see the internal data as NvBlastGraphShaderActor and NvBlastSubgraphShaderActor respectively.

    +The second stage is carried out with NvBlastActorApplyFracture. This function takes the previously generated Fracture Commands and applies them to the NvBlastActor. The result of every applied command is reported as a respective Fracture Event if requested.

    +Fracture Commands and Fracture Events both are represented by NvBlastFractureBuffers. The splitting of the actor into child actors is not done until the third stage, NvBlastActorSplit, is called. Fractures may be repeatedly applied to an actor before splitting.

    +The NvBlastActorGenerateFracture, NvBlastActorApplyFracture and NvBlastActorSplit functions are profiled in Profile configurations. This is done through a pointer to a NvBlastTimers struct passed into the functions. If this pointer is not NULL, then timing values will be accumulated in the referenced struct.

    +The following example illustrates the process:

    +

    // Step one: Generate Fracture Commands
     
     // Damage programs (shader functions), material properties and damage description relate to each other.
     // Together they define how actors will break by generating the desired set of Fracture Commands for Bonds and Chunks.
    @@ -228,7 +234,7 @@ The following example illustrates the process:

    NvBlastProgramParams programParams = { damageDescs, damageDescCount, materialProperties }; // Generating the set of Fracture Commands does not modify the NvBlastActor. -NvBlastActorGenerateFracture(fractureCommands, actor, damageProgram, &programParams, logFn, &timers); +NvBlastActorGenerateFracture( fractureCommands, actor, damageProgram, &programParams, logFn, &timers ); // Step two: Apply Fracture Commands @@ -236,28 +242,28 @@ The following example illustrates the process:

    // Applying Fracture Commands does modify the state of the NvBlastActor. // The Fracture Events report the resulting state of each Bond or Chunk involved. // Chunks fractured hard enough will also fracture their children, creating Fracture Events for each. -NvBlastActorApplyFracture(fractureEvents, actor, fractureCommands, logFn, &timers); +NvBlastActorApplyFracture( fractureEvents, actor, fractureCommands, logFn, &timers ); // Step three: Splitting // The Actor may be split into all its smallest pieces. -uint32_t maxNewActorCount = NvBlastActorSplitMaxActorCount(actor); -std::vector<NvBlastActor*> newActors(maxNewActorCount); +uint32_t maxNewActorCount = NvBlastAssetGetChunkCount( asset, logFn ); // In the worst case, one NvBlastActor may be created for every chunk in the asset +std::vector<NvBlastActor*> newActors( maxNewActorCount ); // Make this memory available to NvBlastSplitEvent. NvBlastActorSplitEvent splitEvent; splitEvent.newActors = newActors.data(); // Some temporary memory is necessary as well. -std::vector<char> scratch(NvBlastActorGetRequiredScratchForSplit(actor)); +std::vector<char> scratch( NvBlastActorGetRequiredScratchForSplit( actor, logFn ) ); // New actors created are reported in splitEvent.newActors. // If newActorCount != 0, then the old actor is deleted and is reported in splitEvent.deletedActor. -size_t newActorCount = NvBlastActorSplit(&splitEvent, actor, maxNewActorCount, scratch.data(), logFn, &timers); -

    -
    -

    +size_t newActorCount = NvBlastActorSplit( &splitEvent, actor, maxNewActorCount, scratch.data(), logFn, &timers ); +

    +
    +


    Member Data Documentation

    + +
    + +
    + +

    +penetration attenuation ([0..1], where 1 means damage attenuates linearly from 0 to max penetration depth). +

    + +

    +

    @@ -96,24 +128,75 @@ custom damage function, can be nullptr, default internal one will be used in tha

    -data to be passed in custom damage function +data to be passed in custom damage function.

    - +

    -global fragility factor +max damage to be applied (if impulse is >= impulseMaxThreshold). +

    + +

    +

    + +

    + +
    + +

    +max penetration depth (if impulse is >= impulseMaxThreshold). +

    + +

    +

    + +

    + +
    + +

    +max impulse value, damage is interpolated value between min and max impulses. +

    + +

    +

    + +

    + +
    + +

    +min impulse value to apply impact damage.

    @@ -130,7 +213,24 @@ global fragility factor

    -family's self collision enabled +family's self collision enabled. +

    + +

    +

    + +

    + +
    + +

    +use shear damage program (otherwise simple radial damage is used)

    diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data-members.html new file mode 100644 index 0000000..ba364e4 --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data-members.html @@ -0,0 +1,32 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + +
    +

    Nv::Blast::ExtProfileData Member List

    This is the complete list of members for Nv::Blast::ExtProfileData, including all inherited members.

    + + +
    dataNv::Blast::ExtProfileData
    nameNv::Blast::ExtProfileData

    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data.html new file mode 100644 index 0000000..207dced --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_profile_data.html @@ -0,0 +1,76 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtProfileData Struct Reference + + + + + + + + +
    +

    Nv::Blast::ExtProfileData Struct Reference

    #include <NvBlastExtCustomProfiler.h> +

    + +

    +List of all members. + + + + + + +

    Public Attributes

    void * data
    const char * name
    +


    Member Data Documentation

    + +
    + +
    + +

    + +

    +

    + +

    +
    + + + + +
    const char* Nv::Blast::ExtProfileData::name
    +
    +
    + +

    + +

    +

    +


    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template-members.html index 2d55750..ce616a5 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html index 0f44eb1..b18cee7 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxActorDescTemplate Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxActorDescTemplate Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc-members.html index e19d884..6db73cf 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc.html index 74b1df0..fef482c 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxAssetDesc Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxAssetDesc Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc-members.html index f49c325..405bf3f 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html index 25e37ae..65f6d9e 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc-members.html index 4c79afa..83dd33f 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html index 5c18587..4bc51a3 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::SubchunkDesc Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::SubchunkDesc Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk-members.html index 8b1ee2f..d55d428 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk.html index 65e0b67..3e1dc6a 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_chunk.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxChunk Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxChunk Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc-members.html index 8728232..c0fe045 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List @@ -21,7 +21,7 @@

    Nv::Blast::ExtPxFamilyDesc Member List

    This is the complete list of members for Nv::Blast::ExtPxFamilyDesc, including all inherited members.

    - +
    actorDescNv::Blast::ExtPxFamilyDesc
    actorDescNv::Blast::ExtPxFamilyDesc
    groupNv::Blast::ExtPxFamilyDesc
    pxAssetNv::Blast::ExtPxFamilyDesc

    diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc.html index 16ef93b..240d6a2 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_family_desc.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxFamilyDesc Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxFamilyDesc Struct Reference @@ -29,9 +29,9 @@ List of all members. - + - + @@ -42,19 +42,19 @@

    Detailed Description

    Family Desc.

    Used to create Physics Family.


    Member Data Documentation

    - +

    Public Attributes

    NvBlastActorDesc actorDesc
    const NvBlastActorDescactorDesc
     actor descriptor to be used when creating TkActor.
     actor descriptor to be used when creating TkActor. If nullptr, default NvBlastActorDesc from ExtPxAsset will be used.
    TkGroupgroup
     if not nullptr, created TkActor will be placed in group
    - +
    NvBlastActorDesc Nv::Blast::ExtPxFamilyDesc::actorDesc const NvBlastActorDesc* Nv::Blast::ExtPxFamilyDesc::actorDesc

    -actor descriptor to be used when creating TkActor. +actor descriptor to be used when creating TkActor. If nullptr, default NvBlastActorDesc from ExtPxAsset will be used.

    diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d-members.html new file mode 100644 index 0000000..ba2b389 --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d-members.html @@ -0,0 +1,32 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + +
    +

    Nv::Blast::ExtPxObjectTypeID Member List

    This is the complete list of members for Nv::Blast::ExtPxObjectTypeID, including all inherited members.

    + + +
    Asset enum valueNv::Blast::ExtPxObjectTypeID
    Enum enum nameNv::Blast::ExtPxObjectTypeID

    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html new file mode 100644 index 0000000..f9ae3a2 --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html @@ -0,0 +1,64 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxObjectTypeID Struct Reference + + + + + + + + +
    +

    Nv::Blast::ExtPxObjectTypeID Struct Reference

    #include <NvBlastExtPxSerialization.h> +

    + +

    +List of all members. + + +

    Public Types

    +


    Detailed Description

    +Standard Object Type IDs

    Member Enumeration Documentation

    + +
    + +
    + +

    +

    Enumerator:
    + + +
    Asset  +
    +
    + +
    +

    +


    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template-members.html index 749170e..8d58c36 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html index 7dd3541..5495994 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxShapeDescTemplate Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxShapeDescTemplate Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings-members.html index 4890bb8..6e6a486 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html index 3afa754..5dd3a1f 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxSpawnSettings Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxSpawnSettings Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk-members.html index 76cfb57..9eb7f51 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk.html index 8f1cf9d..e39ba27 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_px_subchunk.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtPxSubchunk Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtPxSubchunk Struct Reference diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d-members.html new file mode 100644 index 0000000..8fe800b --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d-members.html @@ -0,0 +1,33 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + +
    +

    Nv::Blast::ExtSerialization::ExtSerialization::EncodingID Member List

    This is the complete list of members for Nv::Blast::ExtSerialization::ExtSerialization::EncodingID, including all inherited members.

    + + + +
    CapnProtoBinary enum valueNv::Blast::ExtSerialization::ExtSerialization::EncodingID
    Enum enum nameNv::Blast::ExtSerialization::ExtSerialization::EncodingID
    RawBinary enum valueNv::Blast::ExtSerialization::ExtSerialization::EncodingID

    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html new file mode 100644 index 0000000..6ca3171 --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html @@ -0,0 +1,66 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtSerialization::ExtSerialization::EncodingID Struct Reference + + + + + + + + +
    +

    Nv::Blast::ExtSerialization::ExtSerialization::EncodingID Struct Reference

    #include <NvBlastExtSerialization.h> +

    + +

    +List of all members. + + +

    Public Types

    +


    Detailed Description

    +Standard Encoding IDs

    Member Enumeration Documentation

    + +
    + +
    + +

    +

    Enumerator:
    + + + +
    CapnProtoBinary  +
    RawBinary  +
    +
    + +
    +

    +


    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer-members.html new file mode 100644 index 0000000..83b2352 --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer-members.html @@ -0,0 +1,32 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + +
    +

    Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer Member List

    This is the complete list of members for Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer, including all inherited members.

    + + +
    lineCountNv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer
    linesNv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer

    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html new file mode 100644 index 0000000..b5fbd7f --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html @@ -0,0 +1,77 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer Struct Reference + + + + + + + + +
    +

    Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer Struct Reference

    #include <NvBlastExtStressSolver.h> +

    + +

    +List of all members. + + + + + + +

    Public Attributes

    uint32_t lineCount
    const DebugLinelines
    +


    Detailed Description

    +Debug Buffer

    Member Data Documentation

    + +
    +
    + + + + +
    uint32_t Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer::lineCount
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + +
    const DebugLine* Nv::Blast::ExtStressSolver::ExtStressSolver::DebugBuffer::lines
    +
    +
    + +

    + +

    +

    +


    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line-members.html new file mode 100644 index 0000000..b583332 --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line-members.html @@ -0,0 +1,35 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List + + + + + + + + + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html new file mode 100644 index 0000000..6fd165f --- /dev/null +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html @@ -0,0 +1,150 @@ + + + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine Struct Reference + + + + + + + + +
    +

    Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine Struct Reference

    #include <NvBlastExtStressSolver.h> +

    + +

    +List of all members. + + + + + + + + + + + + + +

    Public Member Functions

     DebugLine (const physx::PxVec3 &p0, const physx::PxVec3 &p1, const uint32_t &c)

    Public Attributes

    uint32_t color0
    uint32_t color1
    physx::PxVec3 pos0
    physx::PxVec3 pos1
    +


    Detailed Description

    +Used to store a single line and colour for debug rendering.

    Constructor & Destructor Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine::DebugLine (const physx::PxVec3 &  p0,
    const physx::PxVec3 &  p1,
    const uint32_t &  c 
    ) [inline]
    +
    +
    + +

    + +

    +

    +


    Member Data Documentation

    + +
    +
    + + + + +
    uint32_t Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine::color0
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + +
    uint32_t Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine::color1
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + +
    physx::PxVec3 Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine::pos0
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + +
    physx::PxVec3 Nv::Blast::ExtStressSolver::ExtStressSolver::DebugLine::pos1
    +
    +
    + +

    + +

    +

    +


    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings-members.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings-members.html index 885cff7..719d358 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings-members.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings-members.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Member List + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Member List @@ -24,6 +24,7 @@ bondIterationsPerFrameNv::Blast::ExtStressSolverSettings ExtStressSolverSettings()Nv::Blast::ExtStressSolverSettings [inline] graphReductionLevelNv::Blast::ExtStressSolverSettings + hardnessNv::Blast::ExtStressSolverSettings stressAngularFactorNv::Blast::ExtStressSolverSettings stressLinearFactorNv::Blast::ExtStressSolverSettings
    diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html index 5c3dd3d..e58b5cc 100644 --- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html +++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html @@ -1,6 +1,6 @@ - NVIDIA(R) Blast(R) SDK 1.0 API Reference: Nv::Blast::ExtStressSolverSettings Struct Reference + NVIDIA(R) Blast(R) SDK 1.1 API Reference: Nv::Blast::ExtStressSolverSettings Struct Reference @@ -38,6 +38,9 @@ uint32_t graphReductionLevel  graph reduction level
    +float hardness + + hardness of bond's material
    float stressAngularFactor  angular stress on bond multiplier
    @@ -47,8 +50,8 @@

    Detailed Description

    Stress Solver Settings

    -Stress on every bond is calculated as stress = bond.linearStress * stressLinearFactor + bond.angularStress * stressAngularFactor where: bond.linearStress - is linear stress force on particular bond bond.angularStress - is angular stress force on particular bond stressLinearFactor, stressAngularFactor - are a multiplier parameter set by this struct

    -Support graph reduction: 2 ^ reduction level = max node count to be aggregated during graph reduction, so 0 is 2 % 0 = 1, basically use support graph. So N nodes graph will be simplified to contain ~ N / (2 ^ reduction level)


    Constructor & Destructor Documentation

    +Stress on every bond is calculated as stress = (bond.linearStress * stressLinearFactor + bond.angularStress * stressAngularFactor) / hardness; where: bond.linearStress = the linear stress force on particular bond bond.angularStress = the angular stress force on particular bond stressLinearFactor, stressAngularFactor, hardness = multiplier parameters set by this struct

    +Support graph reduction: graphReductionLevel is the number of node merge passes. The resulting graph will be roughly 2^graphReductionLevel times smaller than the original.


    Constructor & Destructor Documentation

    @@ -102,6 +105,23 @@ number of bond iterations to perform per frame, graph reduction level

    +

    +

    + +

    + +
    + +

    +hardness of bond's material +

    +

    @@ -139,7 +159,7 @@ linear stress on bond multiplier


    The documentation for this struct was generated from the following file: +
  • sdk/extensions/stress/include/NvBlastExtStressSolver.h