Blender V4.3
blender::bke::pbvh::Tree Class Reference

#include <BKE_pbvh_api.hh>

Public Member Functions

 Tree (const Tree &other)=delete
 
 Tree (Tree &&other)=default
 
Treeoperator= (const Tree &other)=delete
 
Treeoperator= (Tree &&other)=default
 
 ~Tree ()
 
int nodes_num () const
 
template<typename NodeT >
Span< NodeT > nodes () const
 
template<typename NodeT >
MutableSpan< NodeT > nodes ()
 
Type type () const
 
void tag_positions_changed (const IndexMask &node_mask)
 
void tag_visibility_changed (const IndexMask &node_mask)
 
void tag_topology_changed (const IndexMask &node_mask)
 
void tag_face_sets_changed (const IndexMask &node_mask)
 
void tag_masks_changed (const IndexMask &node_mask)
 
void tag_attribute_changed (const IndexMask &node_mask, StringRef attribute_name)
 
template<>
Span< MeshNodenodes () const
 
template<>
Span< GridsNodenodes () const
 
template<>
Span< BMeshNodenodes () const
 
template<>
MutableSpan< MeshNodenodes ()
 
template<>
MutableSpan< GridsNodenodes ()
 
template<>
MutableSpan< BMeshNodenodes ()
 

Static Public Member Functions

static Tree from_mesh (const Mesh &mesh)
 
static Tree from_grids (const Mesh &base_mesh, const SubdivCCG &subdiv_ccg)
 
static Tree from_bmesh (BMesh &bm)
 

Public Attributes

std::variant< Vector< MeshNode >, Vector< GridsNode >, Vector< BMeshNode > > nodes_
 
BitVector bounds_dirty_
 
BitVector normals_dirty_
 
BitVector visibility_dirty_
 
float planes_ [6][4]
 
int num_planes_
 
pixels::PBVHDatapixels_ = nullptr
 
std::unique_ptr< DrawCachedraw_data
 

Detailed Description

Todo
Most data is public but should either be removed or become private in the future. The "_" suffix means that fields shouldn't be used by consumers of the bke::pbvh API.

Definition at line 207 of file BKE_pbvh_api.hh.

Constructor & Destructor Documentation

◆ Tree() [1/2]

blender::bke::pbvh::Tree::Tree ( const Tree & other)
delete

◆ Tree() [2/2]

blender::bke::pbvh::Tree::Tree ( Tree && other)
default

◆ ~Tree()

blender::bke::pbvh::Tree::~Tree ( )

Member Function Documentation

◆ from_bmesh()

◆ from_grids()

◆ from_mesh()

◆ nodes() [1/8]

template<typename NodeT >
MutableSpan< NodeT > blender::bke::pbvh::Tree::nodes ( )

◆ nodes() [2/8]

template<>
MutableSpan< MeshNode > blender::bke::pbvh::Tree::nodes ( )

Definition at line 521 of file pbvh.cc.

References nodes_.

◆ nodes() [3/8]

template<>
MutableSpan< GridsNode > blender::bke::pbvh::Tree::nodes ( )

Definition at line 525 of file pbvh.cc.

References nodes_.

◆ nodes() [4/8]

template<>
MutableSpan< BMeshNode > blender::bke::pbvh::Tree::nodes ( )

Definition at line 529 of file pbvh.cc.

References nodes_.

◆ nodes() [5/8]

template<typename NodeT >
Span< NodeT > blender::bke::pbvh::Tree::nodes ( ) const

Referenced by blender::ed::sculpt_paint::mask::apply_mask_from_settings(), blender::ed::sculpt_paint::mask::apply_new_mask_bmesh(), blender::ed::sculpt_paint::mask::apply_new_mask_grids(), blender::ed::sculpt_paint::mask::apply_new_mask_mesh(), blender::bke::pbvh::pixels::apply_watertight_check(), blender::ed::sculpt_paint::average_mask_border_position(), blender::ed::sculpt_paint::average_unmasked_position(), BKE_sculpt_update_object_before_eval(), blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), blender::bke::pbvh::bmesh_normals_update(), blender::bke::pbvh::bmesh_update_topology(), blender::ed::sculpt_paint::calc_area_center(), blender::ed::sculpt_paint::calc_area_normal(), blender::ed::sculpt_paint::calc_area_normal_and_center(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::draw::pbvh::calc_material_indices(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_relax_face_sets_filter(), blender::ed::sculpt_paint::filter::calc_relax_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::calc_smooth_translations(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::islands::calc_topology_islands_bmesh(), blender::draw::pbvh::calc_use_flat_layout(), calculate_average_weight(), blender::ed::sculpt_paint::face_set::clear_face_sets(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_foces(), blender::ed::sculpt_paint::cloth::cloth_sim_initialize_default_node_state(), blender::bke::pbvh::pixels::count_nodes_to_update(), blender::ed::sculpt_paint::boundary::do_bend_brush(), blender::ed::sculpt_paint::do_bmesh_topology_rake_brush(), blender::ed::sculpt_paint::do_clay_brush(), blender::ed::sculpt_paint::do_clay_strips_brush(), blender::ed::sculpt_paint::do_clay_thumb_brush(), blender::ed::sculpt_paint::do_displacement_eraser_brush(), blender::ed::sculpt_paint::do_displacement_smear_brush(), blender::ed::sculpt_paint::do_draw_vector_displacement_brush(), blender::ed::sculpt_paint::do_elastic_deform_brush(), blender::ed::sculpt_paint::do_enhance_details_brush(), blender::ed::sculpt_paint::boundary::do_grab_brush(), blender::ed::sculpt_paint::do_grab_brush(), blender::ed::sculpt_paint::boundary::do_inflate_brush(), blender::ed::sculpt_paint::do_inflate_brush(), blender::ed::sculpt_paint::do_layer_brush(), blender::ed::sculpt_paint::do_mask_brush(), blender::ed::sculpt_paint::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::color::do_paint_brush(), blender::ed::sculpt_paint::do_pinch_brush(), blender::ed::sculpt_paint::pose::do_pose_brush(), blender::ed::sculpt_paint::do_rotate_brush(), blender::ed::sculpt_paint::cloth::do_simulation_step(), blender::ed::sculpt_paint::boundary::do_slide_brush(), blender::ed::sculpt_paint::color::do_smear_brush(), blender::ed::sculpt_paint::boundary::do_smooth_brush(), blender::ed::sculpt_paint::do_smooth_brush(), blender::ed::sculpt_paint::do_smooth_mask_brush(), blender::ed::sculpt_paint::do_snake_hook_brush(), blender::ed::sculpt_paint::do_thumb_brush(), blender::ed::sculpt_paint::do_topology_slide_brush(), blender::ed::sculpt_paint::boundary::do_twist_brush(), do_wpaint_brush_blur(), do_wpaint_brush_draw(), do_wpaint_brush_smear(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::face_set::edit_fairing(), blender::ed::sculpt_paint::cloth::ensure_nodes_constraints(), blender::draw::pbvh::ensure_vbos_allocated_bmesh(), blender::draw::pbvh::ensure_vbos_allocated_grids(), blender::draw::pbvh::ensure_vbos_allocated_mesh(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::ed::sculpt_paint::fake_neighbor_search(), blender::ed::sculpt_paint::mask::fill_mask_bmesh(), blender::ed::sculpt_paint::mask::fill_mask_grids(), blender::ed::sculpt_paint::mask::fill_mask_mesh(), blender::draw::pbvh::fill_vbos_bmesh(), blender::draw::pbvh::fill_vbos_grids(), blender::draw::pbvh::fill_vbos_mesh(), blender::bke::pbvh::pixels::find_nodes_to_update(), blender::ed::sculpt_paint::hide::flush_face_changes_node(), blender::ed::sculpt_paint::face_set::gesture_apply_bmesh(), blender::ed::sculpt_paint::mask::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::project::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::face_set::gesture_apply_mesh(), blender::ed::sculpt_paint::hide::grid_hide_update(), blender::ed::sculpt_paint::hide::grids_show_all(), blender::ed::sculpt_paint::pose::grow_pose_factor(), blender::ed::sculpt_paint::hide::grow_shrink_visibility_grid(), blender::ed::sculpt_paint::mask::init_mask_grids(), blender::ed::sculpt_paint::mask::invert_mask_bmesh(), blender::ed::sculpt_paint::mask::invert_mask_grids(), blender::ed::sculpt_paint::hide::invert_visibility_bmesh(), blender::ed::sculpt_paint::hide::invert_visibility_grids(), blender::ed::sculpt_paint::hide::invert_visibility_mesh(), blender::ed::sculpt_paint::filter::mesh_filter_sharpen_init(), blender::ed::sculpt_paint::hide::mesh_show_all(), blender::ed::sculpt_paint::nearest_vert_calc_bmesh(), blender::ed::sculpt_paint::nearest_vert_calc_grids(), blender::ed::sculpt_paint::nearest_vert_calc_mesh(), blender::ed::sculpt_paint::offset_positions(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_nodes(), blender::ed::sculpt_paint::undo::push_nodes(), blender::ed::sculpt_paint::expand::restore_color_data(), blender::ed::sculpt_paint::undo::restore_color_from_undo_step(), blender::ed::sculpt_paint::undo::restore_face_set_from_undo_step(), blender::ed::sculpt_paint::undo::restore_list(), blender::ed::sculpt_paint::undo::restore_mask_from_undo_step(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), blender::ed::sculpt_paint::sample_surface(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), blender::ed::sculpt_paint::color::sculpt_color_filter_apply(), blender::ed::sculpt_paint::color::sculpt_color_presmooth_init(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), SCULPT_do_paint_brush_image(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::sculpt_transform_all_vertices(), blender::ed::sculpt_paint::cloth::sim_activate_nodes(), blender::ed::sculpt_paint::transform_radius_elastic(), blender::ed::sculpt_paint::mask::try_remove_mask_mesh(), blender::bke::pbvh::update_bounds_bmesh(), blender::bke::pbvh::update_bounds_grids(), blender::bke::pbvh::update_bounds_mesh(), blender::ed::sculpt_paint::expand::update_for_vert(), blender::bke::pbvh::update_mask_bmesh(), blender::bke::pbvh::update_mask_grids(), blender::bke::pbvh::update_mask_mesh(), blender::ed::sculpt_paint::mask::update_mask_mesh(), blender::bke::pbvh::update_normals(), blender::ed::sculpt_paint::hide::update_undo_state(), blender::bke::pbvh::update_visibility(), blender::ed::sculpt_paint::hide::vert_hide_update(), vpaint_do_paint(), blender::ed::sculpt_paint::mask::write_mask_mesh(), and ~Tree().

◆ nodes() [6/8]

template<>
Span< MeshNode > blender::bke::pbvh::Tree::nodes ( ) const

Definition at line 509 of file pbvh.cc.

References nodes_.

◆ nodes() [7/8]

template<>
Span< GridsNode > blender::bke::pbvh::Tree::nodes ( ) const

Definition at line 513 of file pbvh.cc.

References nodes_.

◆ nodes() [8/8]

template<>
Span< BMeshNode > blender::bke::pbvh::Tree::nodes ( ) const

Definition at line 517 of file pbvh.cc.

References nodes_.

◆ nodes_num()

◆ operator=() [1/2]

Tree & blender::bke::pbvh::Tree::operator= ( const Tree & other)
delete

◆ operator=() [2/2]

Tree & blender::bke::pbvh::Tree::operator= ( Tree && other)
default

◆ tag_attribute_changed()

◆ tag_face_sets_changed()

◆ tag_masks_changed()

◆ tag_positions_changed()

void blender::bke::pbvh::Tree::tag_positions_changed ( const IndexMask & node_mask)

Mark data based on positions for specific BVH nodes dirty. In particular: bounds, normals, and GPU data buffers. That data is recomputed later on in functions like update_bounds.

Warning
Must not be called from multiple threads in parallel.

Definition at line 549 of file pbvh.cc.

References bounds_dirty_, draw_data, blender::index_mask::IndexMask::min_array_size(), normals_dirty_, blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), blender::index_mask::IndexMask::set_bits(), and blender::bits::BitVector< InlineBufferCapacity, Allocator >::size().

Referenced by BKE_pbvh_bmesh_after_stroke(), BKE_pbvh_vert_coords_apply(), BKE_sculpt_update_object_before_eval(), blender::bke::pbvh::bmesh_update_topology(), blender::ed::sculpt_paint::boundary::do_bend_brush(), blender::ed::sculpt_paint::do_bmesh_topology_rake_brush(), blender::ed::sculpt_paint::do_clay_brush(), blender::ed::sculpt_paint::do_clay_strips_brush(), blender::ed::sculpt_paint::do_clay_thumb_brush(), blender::ed::sculpt_paint::do_displacement_eraser_brush(), blender::ed::sculpt_paint::do_displacement_smear_brush(), blender::ed::sculpt_paint::do_draw_vector_displacement_brush(), blender::ed::sculpt_paint::do_elastic_deform_brush(), blender::ed::sculpt_paint::do_enhance_details_brush(), blender::ed::sculpt_paint::boundary::do_grab_brush(), blender::ed::sculpt_paint::do_grab_brush(), blender::ed::sculpt_paint::boundary::do_inflate_brush(), blender::ed::sculpt_paint::do_inflate_brush(), blender::ed::sculpt_paint::do_layer_brush(), blender::ed::sculpt_paint::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::do_pinch_brush(), blender::ed::sculpt_paint::pose::do_pose_brush(), blender::ed::sculpt_paint::do_rotate_brush(), blender::ed::sculpt_paint::cloth::do_simulation_step(), blender::ed::sculpt_paint::boundary::do_slide_brush(), blender::ed::sculpt_paint::boundary::do_smooth_brush(), blender::ed::sculpt_paint::do_smooth_brush(), blender::ed::sculpt_paint::do_snake_hook_brush(), blender::ed::sculpt_paint::do_surface_smooth_brush(), blender::ed::sculpt_paint::do_thumb_brush(), blender::ed::sculpt_paint::do_topology_slide_brush(), blender::ed::sculpt_paint::boundary::do_twist_brush(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), from_bmesh(), from_mesh(), blender::ed::sculpt_paint::project::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::offset_positions(), blender::ed::sculpt_paint::undo::restore_list(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_apply(), blender::ed::sculpt_paint::sculpt_transform_all_vertices(), and blender::ed::sculpt_paint::transform_radius_elastic().

◆ tag_topology_changed()

void blender::bke::pbvh::Tree::tag_topology_changed ( const IndexMask & node_mask)

Tag nodes that have a different number of vertices or faces (currently just for Type::BMesh).

Definition at line 572 of file pbvh.cc.

References draw_data.

Referenced by BKE_pbvh_bmesh_after_stroke(), blender::bke::pbvh::bmesh_update_topology(), and blender::ed::sculpt_paint::dynamic_topology_update().

◆ tag_visibility_changed()

◆ type()

Type blender::bke::pbvh::Tree::type ( ) const
inline

Definition at line 264 of file BKE_pbvh_api.hh.

Referenced by blender::ed::sculpt_paint::mask::apply_mask_from_settings(), blender::ed::sculpt_paint::average_mask_border_position(), blender::ed::sculpt_paint::average_unmasked_position(), BKE_sculpt_update_object_before_eval(), BKE_sculptsession_use_pbvh_draw(), blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), blender::ed::sculpt_paint::brush_delta_update(), blender::ed::sculpt_paint::calc_area_center(), blender::ed::sculpt_paint::calc_area_normal(), blender::ed::sculpt_paint::calc_area_normal_and_center(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::expand::calc_falloff_from_vert_and_symmetry(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::draw::pbvh::calc_material_indices(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_relax_face_sets_filter(), blender::ed::sculpt_paint::filter::calc_relax_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::calc_smooth_translations(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::expand::calc_topology_falloff_from_verts(), blender::draw::pbvh::calc_use_flat_layout(), blender::ed::sculpt_paint::trim::can_exec(), blender::ed::sculpt_paint::face_set::change_visibility_exec(), blender::ed::sculpt_paint::face_set::clear_face_sets(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_foces(), blender::ed::sculpt_paint::cloth::cloth_sim_initialize_default_node_state(), blender::ed::sculpt_paint::cloth::copy_normals_to_array(), blender::ed::sculpt_paint::cloth::copy_positions_to_array(), blender::ed::sculpt_paint::face_set::create_op_exec(), blender::ed::sculpt_paint::boundary::data_init(), blender::ed::sculpt_paint::expand::diagonals_falloff_create(), blender::ed::sculpt_paint::boundary::do_bend_brush(), blender::ed::sculpt_paint::boundary::do_boundary_brush(), blender::ed::sculpt_paint::do_clay_brush(), blender::ed::sculpt_paint::do_clay_strips_brush(), blender::ed::sculpt_paint::do_clay_thumb_brush(), blender::ed::sculpt_paint::do_draw_vector_displacement_brush(), blender::ed::sculpt_paint::do_elastic_deform_brush(), blender::ed::sculpt_paint::do_enhance_details_brush(), blender::ed::sculpt_paint::boundary::do_grab_brush(), blender::ed::sculpt_paint::do_grab_brush(), blender::ed::sculpt_paint::boundary::do_inflate_brush(), blender::ed::sculpt_paint::do_inflate_brush(), blender::ed::sculpt_paint::do_layer_brush(), blender::ed::sculpt_paint::do_mask_brush(), blender::ed::sculpt_paint::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::do_pinch_brush(), blender::ed::sculpt_paint::pose::do_pose_brush(), blender::ed::sculpt_paint::do_relax_face_sets_brush(), blender::ed::sculpt_paint::do_rotate_brush(), blender::ed::sculpt_paint::cloth::do_simulation_step(), blender::ed::sculpt_paint::boundary::do_slide_brush(), blender::ed::sculpt_paint::boundary::do_smooth_brush(), blender::ed::sculpt_paint::do_smooth_brush(), blender::ed::sculpt_paint::do_smooth_mask_brush(), blender::ed::sculpt_paint::do_snake_hook_brush(), blender::ed::sculpt_paint::do_surface_smooth_brush(), blender::ed::sculpt_paint::do_thumb_brush(), blender::ed::sculpt_paint::do_topology_slide_brush(), blender::ed::sculpt_paint::boundary::do_twist_brush(), blender::ed::sculpt_paint::face_set::edit_is_operation_valid(), blender::ed::sculpt_paint::cloth::ensure_nodes_constraints(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::ed::sculpt_paint::fake_neighbor_search(), blender::ed::sculpt_paint::mask::fill_mask(), blender::bke::pbvh::find_nearest_to_ray_node(), blender::ed::sculpt_paint::find_symm_verts(), blender::ed::sculpt_paint::flush_update_done(), blender::ed::sculpt_paint::flush_update_step(), blender::ed::sculpt_paint::geometry_preview_lines_update(), blender::ed::sculpt_paint::project::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::face_set::gesture_apply_mesh(), blender::ed::sculpt_paint::trim::gesture_begin(), blender::ed::sculpt_paint::pose::grow_pose_factor(), blender::ed::sculpt_paint::hide::hide_show_all_exec(), blender::ed::sculpt_paint::hide::hide_show_masked_exec(), blender::ed::sculpt_paint::pose::ik_chain_init_topology(), blender::ed::sculpt_paint::expand::init_from_face_set_boundary(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::filter::mesh_filter_sharpen_init(), blender::draw::overlay::Sculpts::mesh_sync(), multires_flush_sculpt_updates(), blender::ed::sculpt_paint::no_multires_poll(), blender::ed::sculpt_paint::expand::normals_falloff_create(), blender::workbench::ObjectState::ObjectState(), blender::ed::sculpt_paint::offset_positions(), OVERLAY_sculpt_cache_populate(), blender::ed::sculpt_paint::boundary::preview_data_init(), blender::ed::sculpt_paint::undo::push_begin_ex(), blender::ed::sculpt_paint::undo::push_node(), blender::ed::sculpt_paint::undo::push_nodes(), blender::ed::sculpt_paint::face_set::randomize_colors_exec(), blender::ed::sculpt_paint::undo::restore_color_from_undo_step(), blender::ed::sculpt_paint::undo::restore_face_set_from_undo_step(), blender::ed::sculpt_paint::undo::restore_mask_from_undo_step(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), blender::ed::sculpt_paint::expand::resursion_step_add(), blender::ed::sculpt_paint::dyntopo::sample_detail(), blender::ed::sculpt_paint::sample_surface(), blender::ed::sculpt_paint::sculpt_brush_stroke_invoke(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), SCULPT_cursor_geometry_info_update(), blender::ed::sculpt_paint::expand::sculpt_expand_invoke(), sculpt_find_nearest_to_ray_cb(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_start(), sculpt_raycast_cb(), SCULPT_stroke_get_location_ex(), blender::ed::sculpt_paint::sculpt_transform_all_vertices(), SCULPT_vertex_is_occluded(), blender::ed::sculpt_paint::cloth::sim_activate_nodes(), blender::ed::sculpt_paint::expand::snap_init_from_enabled(), blender::ed::sculpt_paint::expand::spherical_falloff_create(), stats_object_sculpt(), blender::ed::sculpt_paint::dyntopo::stroke_is_dyntopo(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::transform_radius_elastic(), blender::bke::pbvh::update_bounds(), blender::ed::sculpt_paint::expand::update_for_vert(), blender::bke::pbvh::update_normals(), blender::bke::pbvh::update_visibility(), blender::ed::sculpt_paint::expand::vert_to_face_falloff(), blender::ed::sculpt_paint::hide::visibility_filter_exec(), blender::ed::sculpt_paint::hide::visibility_invert_exec(), and blender::ed::sculpt_paint::expand::write_mask_data().

Member Data Documentation

◆ bounds_dirty_

BitVector blender::bke::pbvh::Tree::bounds_dirty_

If true, the bounds for the corresponding node index is out of date.

Note
Values are only meaningful for leaf nodes.
The vector's size may not match the size of the nodes array.

Definition at line 222 of file BKE_pbvh_api.hh.

Referenced by blender::bke::pbvh::flush_bounds_to_parents(), tag_positions_changed(), tag_visibility_changed(), blender::bke::pbvh::update_bounds_bmesh(), blender::bke::pbvh::update_bounds_grids(), and blender::bke::pbvh::update_bounds_mesh().

◆ draw_data

◆ nodes_

◆ normals_dirty_

BitVector blender::bke::pbvh::Tree::normals_dirty_

If true, the normals for the corresponding node index are out of date.

Note
Values are only meaningful for leaf nodes.
The vector's size may not match the size of the nodes array.

Definition at line 229 of file BKE_pbvh_api.hh.

Referenced by tag_positions_changed(), and blender::bke::pbvh::update_normals().

◆ num_planes_

int blender::bke::pbvh::Tree::num_planes_

◆ pixels_

◆ planes_

float blender::bke::pbvh::Tree::planes_[6][4]
Todo
Remove and store elsewhere.

Definition at line 239 of file BKE_pbvh_api.hh.

Referenced by blender::bke::pbvh::get_frustum_planes(), and blender::bke::pbvh::set_frustum_planes().

◆ visibility_dirty_

BitVector blender::bke::pbvh::Tree::visibility_dirty_

If true, the visibility status for the corresponding node indices are out of date.

Note
Values are only meaningful for leaf nodes.
The vector's size may not match the size of the nodes array.

Definition at line 236 of file BKE_pbvh_api.hh.

Referenced by tag_visibility_changed(), and blender::bke::pbvh::update_visibility().


The documentation for this class was generated from the following files: