|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include <climits>#include "BLI_array_utils.hh"#include "BLI_bit_span_ops.hh"#include "BLI_bitmap.h"#include "BLI_bounds.hh"#include "BLI_enumerable_thread_specific.hh"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_vector.h"#include "BLI_math_vector.hh"#include "BLI_rand.h"#include "BLI_stack.hh"#include "BLI_task.h"#include "BLI_task.hh"#include "BLI_time.h"#include "BLI_timeit.hh"#include "BLI_utildefines.h"#include "BLI_vector.hh"#include "BLI_vector_set.hh"#include "DNA_object_types.h"#include "BKE_attribute.hh"#include "BKE_ccg.hh"#include "BKE_mesh.hh"#include "BKE_mesh_mapping.hh"#include "BKE_object.hh"#include "BKE_paint.hh"#include "BKE_pbvh_api.hh"#include "BKE_subdiv_ccg.hh"#include "DEG_depsgraph_query.hh"#include "bmesh.hh"#include "atomic_ops.h"#include "pbvh_intern.hh"Go to the source code of this file.
Classes | |
| struct | blender::bke::pbvh::StackItem |
| struct | blender::bke::pbvh::PBVHIter |
| struct | blender::bke::pbvh::node_tree |
| struct | blender::bke::pbvh::BoundsMergeInfo |
| struct | blender::bke::pbvh::RaycastData |
Namespaces | |
| namespace | blender |
| namespace | blender::bke |
| namespace | blender::bke::pbvh |
Macros | |
| #define | STACK_FIXED_DEPTH 100 |
Enumerations | |
| enum | blender::bke::pbvh::PlaneAABBIsect { blender::bke::pbvh::ISECT_INSIDE , blender::bke::pbvh::ISECT_OUTSIDE , blender::bke::pbvh::ISECT_INTERSECT } |
| #define STACK_FIXED_DEPTH 100 |
Definition at line 55 of file pbvh.cc.
Referenced by blender::bke::pbvh::build_nodes_recursive_grids(), and blender::bke::pbvh::build_nodes_recursive_mesh().
| int BKE_pbvh_debug_draw_gen_get | ( | blender::bke::pbvh::Node & | node | ) |
Definition at line 2525 of file pbvh.cc.
Referenced by DRW_sculpt_debug_cb().
| void BKE_pbvh_draw_debug_cb | ( | blender::bke::pbvh::Tree & | pbvh, |
| void(* | draw_fn )(blender::bke::pbvh::Node *node, void *user_data, const float bmin[3], const float bmax[3], PBVHNodeFlags flag), | ||
| void * | user_data ) |
Definition at line 2368 of file pbvh.cc.
References flag, blender::bke::pbvh::Tree::nodes_, PBVH_Leaf, and PBVH_TexLeaf.
Referenced by basic_cache_populate(), and drw_sculpt_generate_calls().
Definition at line 1502 of file pbvh.cc.
References BKE_subdiv_ccg_key_top_level(), BLI_assert, CCGKey::grid_size, blender::bke::pbvh::Grids, SubdivCCG::grids_num, blender::bke::object::pbvh_get(), square_i(), and SculptSession::subdiv_ccg.
Referenced by stats_object_sculpt().
Definition at line 1494 of file pbvh.cc.
References BKE_subdiv_ccg_key_top_level(), BLI_assert, CCGKey::grid_area, blender::bke::pbvh::Grids, SubdivCCG::grids_num, blender::bke::object::pbvh_get(), and SculptSession::subdiv_ccg.
Referenced by SCULPT_vertex_count_get(), and stats_object_sculpt().
| void BKE_pbvh_mark_rebuild_pixels | ( | blender::bke::pbvh::Tree & | pbvh | ) |
Definition at line 1517 of file pbvh.cc.
References blender::bke::pbvh::Tree::nodes_, PBVH_Leaf, and PBVH_RebuildPixels.
Referenced by sculpt_update_object().
| bool BKE_pbvh_node_frustum_contain_AABB | ( | const blender::bke::pbvh::Node * | node, |
| const PBVHFrustumPlanes * | frustum ) |
Test if AABB is at least partially inside the PBVHFrustumPlanes volume.
Definition at line 2354 of file pbvh.cc.
References blender::bke::pbvh::ISECT_OUTSIDE, and blender::bke::pbvh::test_frustum_aabb().
Referenced by drw_sculpt_generate_calls(), and blender::draw::sculpt_batches_get_ex().
| bool BKE_pbvh_node_frustum_exclude_AABB | ( | const blender::bke::pbvh::Node * | node, |
| const PBVHFrustumPlanes * | frustum ) |
Test if AABB is at least partially outside the PBVHFrustumPlanes volume.
Definition at line 2361 of file pbvh.cc.
References blender::bke::pbvh::ISECT_INSIDE, and blender::bke::pbvh::test_frustum_aabb().
| bool BKE_pbvh_node_fully_hidden_get | ( | const blender::bke::pbvh::Node & | node | ) |
Definition at line 1542 of file pbvh.cc.
References PBVH_FullyHidden, and PBVH_Leaf.
Referenced by drw_sculpt_generate_calls(), blender::ed::sculpt_paint::mask::get_hidden_verts(), blender::ed::sculpt_paint::node_fully_masked_or_hidden(), blender::ed::sculpt_paint::hide::node_visible_verts(), and blender::draw::sculpt_batches_get_ex().
| void BKE_pbvh_node_fully_hidden_set | ( | blender::bke::pbvh::Node & | node, |
| int | fully_hidden ) |
Definition at line 1530 of file pbvh.cc.
References BLI_assert, PBVH_FullyHidden, and PBVH_Leaf.
Referenced by blender::ed::sculpt_paint::hide::invert_visibility_bmesh(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_nodes(), and blender::bke::pbvh::pbvh_bmesh_node_finalize().
| bool BKE_pbvh_node_fully_masked_get | ( | const blender::bke::pbvh::Node & | node | ) |
Definition at line 1559 of file pbvh.cc.
References PBVH_FullyMasked, and PBVH_Leaf.
Referenced by blender::ed::sculpt_paint::node_fully_masked_or_hidden().
| void BKE_pbvh_node_fully_masked_set | ( | blender::bke::pbvh::Node & | node, |
| int | fully_masked ) |
Definition at line 1547 of file pbvh.cc.
References BLI_assert, PBVH_FullyMasked, and PBVH_Leaf.
Referenced by blender::ed::sculpt_paint::mask::fill_mask_bmesh(), and blender::ed::sculpt_paint::mask::fill_mask_mesh().
| bool BKE_pbvh_node_fully_unmasked_get | ( | const blender::bke::pbvh::Node & | node | ) |
Definition at line 1576 of file pbvh.cc.
References PBVH_FullyUnmasked, and PBVH_Leaf.
| void BKE_pbvh_node_fully_unmasked_set | ( | blender::bke::pbvh::Node & | node, |
| int | fully_masked ) |
Definition at line 1564 of file pbvh.cc.
References BLI_assert, PBVH_FullyUnmasked, and PBVH_Leaf.
Referenced by blender::ed::sculpt_paint::mask::fill_mask_bmesh(), and blender::ed::sculpt_paint::mask::fill_mask_mesh().
| void BKE_pbvh_node_get_bm_orco_data | ( | const blender::bke::pbvh::BMeshNode & | node, |
| blender::Span< blender::float3 > & | r_orig_positions, | ||
| blender::Span< blender::int3 > & | r_orig_tris ) |
Definition at line 1617 of file pbvh.cc.
Referenced by blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh().
| blender::Bounds< blender::float3 > BKE_pbvh_node_get_original_BB | ( | const blender::bke::pbvh::Node * | node | ) |
Definition at line 1611 of file pbvh.cc.
Referenced by blender::bke::pbvh::clip_ray_ortho(), blender::ed::sculpt_paint::node_in_cylinder(), and blender::ed::sculpt_paint::node_in_sphere().
| float BKE_pbvh_node_get_tmin | ( | const blender::bke::pbvh::Node * | node | ) |
Definition at line 766 of file pbvh.cc.
Referenced by sculpt_find_nearest_to_ray_cb(), sculpt_raycast_cb(), and blender::ed::sculpt_paint::dyntopo::sculpt_raycast_detail_cb().
| void BKE_pbvh_node_mark_update | ( | blender::bke::pbvh::Node & | node | ) |
Definition at line 1512 of file pbvh.cc.
References PBVH_RebuildPixels.
Referenced by BKE_sculpt_update_object_before_eval().
| blender::Bounds< blender::float3 > BKE_pbvh_redraw_BB | ( | const blender::bke::pbvh::Tree & | pbvh | ) |
Definition at line 1439 of file pbvh.cc.
References blender::bounds::merge(), blender::bke::pbvh::negative_bounds(), node, blender::bke::pbvh::pbvh_iter_begin(), blender::bke::pbvh::pbvh_iter_next(), PBVH_Leaf, PBVH_UpdateRedraw, and blender::bke::pbvh::tree_is_empty().
Referenced by SCULPT_get_redraw_rect().
| void BKE_pbvh_sync_visibility_from_verts | ( | Object & | object | ) |
Definition at line 2530 of file pbvh.cc.
References BKE_subdiv_ccg_key_top_level(), bm, SculptSession::bm, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_VERT, BM_VERTS_OF_MESH, blender::bke::pbvh::BMesh, BMLoop::e, e, BMLoop::f, blender::bke::Face, blender::bke::SpanAttributeWriter< T >::finish(), blender::index_mask::IndexMask::from_predicate(), SubdivCCG::grid_hidden, blender::bke::pbvh::Grids, blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), l, blender::index_mask::masked_fill(), blender::bke::pbvh::Mesh, blender::bke::mesh_hide_face_flush(), blender::bke::mesh_hide_vert_flush(), blender::bke::object::pbvh_get(), blender::bke::MutableAttributeAccessor::remove(), blender::bke::SpanAttributeWriter< T >::span, SculptSession::subdiv_ccg, and v.
Referenced by blender::ed::sculpt_paint::hide::grid_hide_update(), blender::ed::sculpt_paint::hide::grids_show_all(), blender::ed::sculpt_paint::hide::grow_shrink_visibility_grid(), blender::ed::sculpt_paint::hide::invert_visibility_grids(), and blender::ed::sculpt_paint::undo::restore_list().
| void BKE_pbvh_vert_coords_apply | ( | blender::bke::pbvh::Tree & | pbvh, |
| const blender::Span< blender::float3 > | vert_positions ) |
Definition at line 2398 of file pbvh.cc.
References blender::bke::pbvh::Tree::nodes_num(), blender::bke::pbvh::store_bounds_orig(), blender::bke::pbvh::Tree::tag_positions_changed(), and blender::bke::pbvh::update_bounds_mesh().
Referenced by blender::bke::build_pbvh_from_regular_mesh(), and sculpt_update_object().