Blender V4.5
btDbvt.cpp File Reference
#include "btDbvt.h"

Go to the source code of this file.

Classes

struct  btDbvtNodeEnumerator

Typedefs

typedef btAlignedObjectArray< btDbvtNode * > tNodeArray
 btDbvt implementation by Nathanael Presson
typedef btAlignedObjectArray< const btDbvtNode * > tConstNodeArray

Functions

static DBVT_INLINE int indexof (const btDbvtNode *node)
static DBVT_INLINE btDbvtVolume merge (const btDbvtVolume &a, const btDbvtVolume &b)
static DBVT_INLINE btScalar size (const btDbvtVolume &a)
static void getmaxdepth (const btDbvtNode *node, int depth, int &maxdepth)
static DBVT_INLINE void deletenode (btDbvt *pdbvt, btDbvtNode *node)
static void recursedeletenode (btDbvt *pdbvt, btDbvtNode *node)
static DBVT_INLINE btDbvtNodecreatenode (btDbvt *pdbvt, btDbvtNode *parent, void *data)
static DBVT_INLINE btDbvtNodecreatenode (btDbvt *pdbvt, btDbvtNode *parent, const btDbvtVolume &volume, void *data)
static DBVT_INLINE btDbvtNodecreatenode (btDbvt *pdbvt, btDbvtNode *parent, const btDbvtVolume &volume0, const btDbvtVolume &volume1, void *data)
static void insertleaf (btDbvt *pdbvt, btDbvtNode *root, btDbvtNode *leaf)
static btDbvtNoderemoveleaf (btDbvt *pdbvt, btDbvtNode *leaf)
static void fetchleaves (btDbvt *pdbvt, btDbvtNode *root, tNodeArray &leaves, int depth=-1)
static bool leftOfAxis (const btDbvtNode *node, const btVector3 &org, const btVector3 &axis)
static int split (btDbvtNode **leaves, int count, const btVector3 &org, const btVector3 &axis)
static btDbvtVolume bounds (btDbvtNode **leaves, int count)
static void bottomup (btDbvt *pdbvt, btDbvtNode **leaves, int count)
static btDbvtNodetopdown (btDbvt *pdbvt, btDbvtNode **leaves, int count, int bu_treshold)
static DBVT_INLINE btDbvtNodesort (btDbvtNode *n, btDbvtNode *&r)

Typedef Documentation

◆ tConstNodeArray

Definition at line 21 of file btDbvt.cpp.

◆ tNodeArray

btDbvt implementation by Nathanael Presson

Definition at line 20 of file btDbvt.cpp.

Function Documentation

◆ bottomup()

void bottomup ( btDbvt * pdbvt,
btDbvtNode ** leaves,
int count )
static

Definition at line 318 of file btDbvt.cpp.

References bottomup(), createnode(), i, merge(), btDbvtNode::parent, SIMD_INFINITY, and size().

Referenced by bottomup(), btDbvt::optimizeBottomUp(), and topdown().

◆ bounds()

btDbvtVolume bounds ( btDbvtNode ** leaves,
int count )
static

◆ createnode() [1/3]

DBVT_INLINE btDbvtNode * createnode ( btDbvt * pdbvt,
btDbvtNode * parent,
const btDbvtVolume & volume,
void * data )
static

Definition at line 115 of file btDbvt.cpp.

References createnode(), data, DBVT_INLINE, and btDbvtNode::volume.

◆ createnode() [2/3]

DBVT_INLINE btDbvtNode * createnode ( btDbvt * pdbvt,
btDbvtNode * parent,
const btDbvtVolume & volume0,
const btDbvtVolume & volume1,
void * data )
static

Definition at line 126 of file btDbvt.cpp.

References createnode(), data, DBVT_INLINE, Merge(), and btDbvtNode::volume.

◆ createnode() [3/3]

DBVT_INLINE btDbvtNode * createnode ( btDbvt * pdbvt,
btDbvtNode * parent,
void * data )
static

◆ deletenode()

DBVT_INLINE void deletenode ( btDbvt * pdbvt,
btDbvtNode * node )
static

◆ fetchleaves()

void fetchleaves ( btDbvt * pdbvt,
btDbvtNode * root,
tNodeArray & leaves,
int depth = -1 )
static

◆ getmaxdepth()

void getmaxdepth ( const btDbvtNode * node,
int depth,
int & maxdepth )
static

Definition at line 60 of file btDbvt.cpp.

References btMax(), getmaxdepth(), and btDbvtNode::isinternal().

Referenced by getmaxdepth(), and btDbvt::maxdepth().

◆ indexof()

DBVT_INLINE int indexof ( const btDbvtNode * node)
static

Definition at line 31 of file btDbvt.cpp.

References DBVT_INLINE, indexof(), and btDbvtNode::parent.

Referenced by indexof(), insertleaf(), removeleaf(), and sort().

◆ insertleaf()

void insertleaf ( btDbvt * pdbvt,
btDbvtNode * root,
btDbvtNode * leaf )
static

◆ leftOfAxis()

bool leftOfAxis ( const btDbvtNode * node,
const btVector3 & org,
const btVector3 & axis )
static

Definition at line 248 of file btDbvt.cpp.

References btDot(), btVector3, btDbvtAabbMm::Center(), leftOfAxis(), and btDbvtNode::volume.

Referenced by leftOfAxis(), and split().

◆ merge()

DBVT_INLINE btDbvtVolume merge ( const btDbvtVolume & a,
const btDbvtVolume & b )
static

Definition at line 37 of file btDbvt.cpp.

References ATTRIBUTE_ALIGNED16, b, DBVT_INLINE, Merge(), and merge().

◆ recursedeletenode()

void recursedeletenode ( btDbvt * pdbvt,
btDbvtNode * node )
static

Definition at line 80 of file btDbvt.cpp.

References deletenode(), btDbvtNode::isleaf(), btDbvt::m_root, and recursedeletenode().

Referenced by btDbvt::clear(), and recursedeletenode().

◆ removeleaf()

btDbvtNode * removeleaf ( btDbvt * pdbvt,
btDbvtNode * leaf )
static

◆ size()

DBVT_INLINE btScalar size ( const btDbvtVolume & a)
static

Definition at line 52 of file btDbvt.cpp.

References btVector3, DBVT_INLINE, btDbvtAabbMm::Lengths(), and size().

Referenced by _bli_buffer_append_array(), _DNA_internal_memcpy(), _DNA_internal_memzero(), _DNA_internal_swap(), _DNA_struct_default_alloc_impl(), action_create(), add_node(), add_type(), add_vn_vn(), add_vn_vn_d(), add_vn_vnvn(), add_vn_vnvn_d(), alloc_alpha_modifier(), alloc_color_modifier(), alloc_geometry_modifier(), alloc_thickness_modifier(), ApplyPrimvars(), arrow_draw_geom(), ATTR_NONNULL(), bc_decompose(), BGL_MakeBuffer(), biggest_non_image_area(), BKE_blender_user_menu_item_add(), BKE_brush_debug_print_state(), BKE_brush_size_get(), BKE_brush_size_set(), BKE_colorband_evaluate_table_rgba(), BKE_curvemapping_table_F(), BKE_curvemapping_table_RGBA(), BKE_mesh_origindex_map_create_corner_tri(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_uv_vert_map_create(), BKE_object_add_from(), BKE_previewimg_clear_single(), BKE_previewimg_ensure(), BKE_previewimg_finish(), BKE_previewimg_is_finished(), BKE_previewimg_to_imbuf(), BKE_texture_mapping_init(), BKE_tracking_camera_distortion_hash(), BKE_tracking_stabilization_data_get(), BKE_vfont_builtin_register(), blend_file_thumb_clamp_size(), blend_read(), blend_write(), BLF_default_size(), BLF_draw_svg_icon(), blf_draw_svg_icon(), blf_font_size(), blf_glyph_transform_spacing(), BLF_size(), blf_size_finalizer(), BLF_str_offset_to_glyph_bounds(), BLF_svg_icon_bitmap(), blf_svg_icon_bitmap(), BLI_array_store_at_size_ensure(), BLI_endian_switch_double_array(), BLI_endian_switch_float_array(), BLI_endian_switch_int16_array(), BLI_endian_switch_int32_array(), BLI_endian_switch_int64_array(), BLI_endian_switch_uint16_array(), BLI_endian_switch_uint32_array(), BLI_endian_switch_uint64_array(), bli_executable_path_get(), BLI_file_read_as_lines(), BLI_filelist_entry_size_to_string(), BLI_memarena_alloc(), BLI_memarena_calloc(), BLI_memiter_iter_step(), BLI_memiter_iter_step_size(), BLI_rctf_init_pt_radius(), BLI_rcti_init_pt_radius(), BLI_rcti_is_valid(), BLI_sprintfN(), BLI_sprintfN_with_buffer(), BLI_thread_queue_len(), BLI_vsprintfN(), BLI_vsprintfN_with_buffer(), bli_windows_get_module_name(), bli_windows_get_module_version(), BLO_memfile_chunk_add(), bm_face_reverse_colors(), BM_mesh_copy_init_customdata_all_layers(), BMO_op_vinitf(), bmo_rotate_colors_exec(), BMO_slot_mat_set(), bottomup(), bpy_escape_identifier(), bpy_flip_name(), BPy_IDArray_ass_slice(), bpy_lib_exit(), bpy_slot_from_py(), bpy_slot_to_py(), bpy_unescape_identifier(), BPyGPU_Buffer_CreatePyObject(), brush_add(), brush_add_count_iter(), brush_defaults(), brush_painter_2d_refresh_cache(), brush_painter_imbuf_new(), brush_painter_mask_ibuf_new(), brush_scale_size_exec(), bsdf_alloc(), btAlignedAllocDefault(), btAlignedAllocInternal(), btAllocDefault(), btMprSimplexSetSize(), btPoolAlloc(), btSimplexSetSize(), buffer_from_filepath(), build_edge_mats(), build_frames(), build_pict_list_from_image_sequence(), C_Matrix_Diagonal(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_edge_handles(), cage3d_draw_box_interaction(), calctrackballvec(), calculate_autoscale_factor(), camera_stereo3d_model_matrix(), ccl_try_align(), cdf_read_data(), cdf_write_data(), check_j2k(), check_jp2(), checker_board_color_tint(), childof_evaluate(), clampto_evaluate(), clipx_rctf(), clipy_rctf(), closest_latice(), closure_alloc(), closure_alloc_extra(), cloth_build_springs(), cloth_continuum_step(), Color_ass_slice(), colorramp_to_array(), compensate_rotation_center(), computeDeltaVelocityInConstraintSpace(), copy_vn_fl(), copy_vn_i(), copy_vn_short(), count_mesh_quads(), create_mesh(), create_primitive_from_points(), CreateRegKeyAndSetValue(), cursor_point_draw(), curvemapping_color_to_array(), curvemapping_float_to_array(), curvemapping_to_array(), data_device_handle_drop(), data_offset_from_size(), def_internal_icon(), detect_retrieve_libmv_features(), diffuse_toon(), distribute_grid(), dna_write(), do_rough(), do_rough_curve(), dot_vn_vn(), draw_azone_arrow(), ED_draw_imbuf_method(), ED_preview_restart_queue_add(), ED_preview_use_image_size(), ED_region_generic_tools_region_snap_size(), EIG_svd_square_matrix(), endian_switch_array(), Euler_ass_slice(), ExportCurveSegmentsMotion(), EXPP_VectorsAreEqual(), file_draw_tooltip_custom_func(), file_read(), find_byte_not_equal_to(), follow_face_loop(), followpath_evaluate(), font_paste_wchar(), foreach_getset(), format_from_header(), get_ccgdm_data(), get_draw_size(), get_item_size(), get_proxy_filepath(), get_thumb_dir(), getCacheEntry(), gim_alloc(), gim_alloca(), gizmo_cage2d_draw_intern(), gizmo_cage2d_modal(), gizmo_cage2d_test_select(), gizmo_cage3d_draw_intern(), glossy_toon(), gmp_alloc(), GPU_color_band(), gpu_material_ramp_texture_row_set(), gpu_viewport_textures_create(), gwl_window_cursor_custom_store(), gwl_window_resize_for_backend(), gzip_read(), heap_down(), heap_is_minheap(), heapsimple_down(), icon_create_rect(), icon_draw_size(), icon_set_image(), imb_alloc_pixels(), IMB_create_gpu_texture(), IMB_get_size_in_memory(), imb_is_a_cineon(), imb_is_a_iris(), imb_is_a_jp2(), imb_is_a_jpeg(), imb_is_a_webp(), imb_load_cineon(), imb_load_dpx_cineon(), IMB_load_image_from_file_descriptor(), IMB_load_image_from_memory(), imb_load_jp2(), imb_load_jpeg(), imb_loadiris(), imb_loadwebp(), IMB_rect_size_set(), imb_test_image_read_header_from_filepath(), IMB_thumb_create(), IMB_thumb_delete(), IMB_thumb_manage(), IMB_thumb_read(), IMB_update_gpu_texture_sub(), imbuf_rgba_to_abgr(), init_stabilizer(), initialize_chain(), initialize_posetree(), interp_vn_vn(), is_inside_tile(), kernel_global_memory_copy(), kernel_osl_use(), keyboard_handle_keymap(), kill_selection(), len_squared_vn(), libmv_getFeature(), lineart_list_append_pointer_pool_sized(), lineart_list_append_pointer_pool_sized_thread(), lineart_mem_acquire(), lineart_mem_acquire_thread(), lineart_mem_new_static_pool(), list_push_pointer_static_sized(), loc_eul_size_to_mat4(), loc_eulO_size_to_mat4(), loc_quat_size_to_mat4(), loc_rot_size_to_mat4(), logimage_fread(), logimage_fwrite(), logImageIsCineon(), logImageIsDpx(), logImageOpenFromMemory(), lookup_table_read(), M_imbuf_new(), main(), mat3_to_rot_size(), mat3_to_size(), mat4_decompose(), mat4_to_loc_rot_size(), mat4_to_size(), mat4_to_size_fix_shear(), mathutils_array_parse_alloc_vi(), mathutils_array_parse_alloc_viseq(), mathutils_array_parse_fast(), mathutils_int_array_parse(), Matrix_ass_slice(), Matrix_decompose(), Matrix_str(), Matrix_to_scale(), MEM_calloc_arrayN(), MEM_guarded_calloc_arrayN(), MEM_guarded_calloc_arrayN_aligned(), MEM_guarded_malloc_arrayN(), MEM_guarded_malloc_arrayN_aligned(), MEM_lockfree_calloc_arrayN(), MEM_lockfree_calloc_arrayN_aligned(), MEM_lockfree_malloc_arrayN(), MEM_lockfree_malloc_arrayN_aligned(), MEM_malloc_arrayN(), memiter_string_test(), memiter_words10k_test(), memory_read_mmap(), memory_read_raw(), memory_source(), memory_usage_block_alloc(), memory_usage_block_free(), mesh_island_to_astar_graph_edge_process(), mesh_texture_space(), meshdeform_bind_floodfill(), meshdeform_dynamic_bind(), meshdeform_index(), missing_files_find__recursive(), MOD_solidify_nonmanifold_modifyMesh(), modify_mesh(), movieclip_build_proxy_ibuf(), msg_to_bytes(), mul_vn_db(), mul_vn_fl(), mul_vn_vn(), mul_vn_vn_fl(), mul_vn_vnvn(), multires_reshape_apply_base_refit_base_mesh(), negate_vn(), negate_vn_vn(), new_modifier(), next_lattice(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), normalEditModifier_do_radial(), normalize_vn(), normalize_vn_vn(), orthogonalize_m3(), orthogonalize_m4(), osl_allocate_closure_component(), osl_allocate_weighted_closure_component(), pad_pixels(), paint_2d_stroke(), panel_draw_aligned_widgets(), parse_expr(), particle_system_minmax(), particles_fluid_step(), path_read_compressed_text(), path_read_text(), pe_brush_size_get(), playanim_window_zoom(), point_density_texture_space(), prefetch_read_file_to_memory(), prefetch_task_func(), prev_lattice(), proxy_task_func(), proxy_thread_next_frame(), ptcache_add_extra_data(), ptcache_file_compressed_read(), ptcache_file_compressed_write(), ptcache_file_read(), ptcache_file_write(), py_blf_size(), py_imbuf_resize(), PyC_UnicodeFromBytesAndSize(), pygpu_state_point_size_set(), pygpu_texture__tp_new(), pyprop_array_foreach_getset(), Quaternion_ass_slice(), Quaternion_new(), rand_vn(), range_fl(), range_fl(), range_vn_fl(), range_vn_i(), range_vn_u(), rct_fits(), reconstruct_retrieve_libmv_tracks(), rect_realloc_16bytes(), rect_realloc_4bytes(), rna_builtin_properties_lookup_string(), rna_construct_function_name(), rna_construct_wrapper_function_name(), rna_find_sdna_member(), RNA_parameter_list_create(), RNA_parameter_set(), rna_parameter_size_pad(), rna_property_array_length_all_dimensions(), rna_raw_access(), rna_sortlist(), rotlike_evaluate(), rotlimit_evaluate(), round_up_to_multiple(), screen_area_trim(), screen_global_statusbar_area_refresh(), screen_global_topbar_area_refresh(), serializeRigidBodies(), set_alpha(), shade_background_pixels(), shape_preset_trias_from_rect_checkmark(), shape_preset_trias_from_rect_menu(), SIM_hair_volume_create_vertex_grid(), SIM_hair_volume_grid_clear(), SIM_hair_volume_normalize_vertex_grid(), size(), size_to_mat3(), size_to_mat4(), sizelike_evaluate(), sizelimit_evaluate(), stabilization_calculate_data(), stream_read(), stretchto_evaluate(), string_hex(), string_human_readable_size(), sub_vn_vn(), sub_vn_vnvn(), svm_node_wireframe(), tabulated_sobol_generate_4D(), TEST(), TEST(), TEST(), test_onedrive_file_is_placeholder(), thumb_create_ex(), thumb_create_or_fail(), thumbpath_from_uri(), thumbpathname_from_uri(), trackto_evaluate(), transform_evaluate(), transform_motion_decompose(), TYPED_TEST(), UI_icon_alert_imbuf_get(), UI_icon_draw_preview(), ui_icon_ensure_deferred(), ui_icon_is_preview_deferred_loading(), UI_icon_preview_to_render_size(), UI_icon_render_id(), UI_icon_render_id_ex(), ui_id_preview_image_render_size(), UI_svg_icon_bitmap(), UI_text_clip_multiline_middle(), uiItemPopoverPanel(), uiTemplateRecentFiles_tooltip_func(), undo_read(), util_aligned_free(), util_aligned_malloc(), view3d_center_camera_exec(), view3d_localview_init(), view3d_set_1_to_1_viewborder(), view_borderzoom_exec(), widget_draw_icon_centered(), widget_draw_preview_icon(), widget_draw_text_icon(), widget_scroll(), WIDGETGROUP_empty_image_refresh(), WIDGETGROUP_forcefield_refresh(), window_set_custom_cursor(), wireframe(), wm_block_about_create(), wm_block_splash_image_roundcorners_add(), wm_clipboard_text_get_impl(), wm_drag_draw_default(), wm_drag_draw_icon(), wm_drag_draw_tooltip(), xdg_toplevel_handle_configure(), zstd_read(), and zstd_read_seekable().

◆ sort()

◆ split()

◆ topdown()

btDbvtNode * topdown ( btDbvt * pdbvt,
btDbvtNode ** leaves,
int count,
int bu_treshold )
static