|
Blender V4.3
|
#include <BKE_geometry_set.hh>
Public Types | |
| using | AttributeForeachCallback |
| using | ForeachSubGeometryCallback = FunctionRef<void(GeometrySet &geometry_set)> |
Public Member Functions | |
| template<typename Component > | |
| Component & | get_component_for_write () |
| template<typename Component > | |
| const Component * | get_component () const |
| template<typename Component > | |
| bool | has () const |
| template<typename Component > | |
| bool | has_component () const |
| template<typename Component > | |
| void | remove () |
| uint64_t | hash () const |
Public Attributes | |
| std::string | name |
Friends | |
| std::ostream & | operator<< (std::ostream &stream, const GeometrySet &geometry_set) |
| bool | operator== (const GeometrySet &a, const GeometrySet &b) |
A geometry set is a container for multiple kinds of geometry. It does not own geometry directly itself, instead geometry is owned by multiple #GeometryComponents, and the geometry set increases the user count of each component, so they avoid losing the data. This means individual components might be shared between multiple geometries and other code. Shared components are copied automatically when write access is requested.
The components usually do not store data directly, but keep a reference to a data structure defined elsewhere. There is at most one component of each type:
Copying a geometry set is a relatively cheap operation, because it does not copy the referenced geometry components, so GeometrySet can often be passed or moved by value.
Definition at line 146 of file BKE_geometry_set.hh.
Definition at line 250 of file BKE_geometry_set.hh.
| using blender::bke::GeometrySet::ForeachSubGeometryCallback = FunctionRef<void(GeometrySet &geometry_set)> |
Definition at line 272 of file BKE_geometry_set.hh.
|
default |
The methods are defaulted here so that they are not instantiated in every translation unit.
|
default |
|
default |
|
default |
| void blender::bke::GeometrySet::add | ( | const GeometryComponent & | component | ) |
Definition at line 187 of file geometry_set.cc.
References blender::ImplicitSharingInfo::add_user(), BLI_assert, and blender::bke::GeometryComponent::type().
Referenced by blender::geometry::join_component_type(), blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec(), blender::nodes::node_geo_separate_components_cc::node_geo_exec(), blender::nodes::node_geo_sort_elements_cc::node_geo_exec(), and blender::geometry::realize_instances().
| void blender::bke::GeometrySet::attribute_foreach | ( | Span< GeometryComponent::Type > | component_types, |
| bool | include_instances, | ||
| AttributeForeachCallback | callback ) const |
Definition at line 606 of file geometry_set.cc.
References attribute_foreach(), blender::bke::GeometryComponent::attributes(), callback, blender::bke::Instances::foreach_referenced_geometry(), get_component(), get_instances(), has(), has_instances(), and blender::bke::AttributeIter::name.
Referenced by attribute_foreach(), gather_attributes_for_propagation(), and blender::nodes::geo_eval_log::GeometryInfoLog::GeometryInfoLog().
| void blender::bke::GeometrySet::clear | ( | ) |
Remove all geometry components from the geometry set.
Definition at line 267 of file geometry_set.cc.
Referenced by blender::nodes::node_geo_duplicate_elements_cc::duplicate_instances(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::modifyGeometry(), blender::bke::bake::move_bake_items_to_socket_values(), and blender::bke::InstanceReference::to_geometry_set().
| std::optional< Bounds< float3 > > blender::bke::GeometrySet::compute_boundbox_without_instances | ( | ) | const |
Definition at line 206 of file geometry_set.cc.
References BKE_volume_min_max(), get_curves(), get_grease_pencil(), get_mesh(), get_pointcloud(), get_volume(), and blender::bounds::merge().
Referenced by blender::nodes::node_geo_bounding_box_cc::node_geo_exec().
| void blender::bke::GeometrySet::count_memory | ( | MemoryCounter & | memory | ) | const |
Definition at line 595 of file geometry_set.cc.
References blender::memory_counter::MemoryCounter::add_shared().
| void blender::bke::GeometrySet::ensure_owns_all_data | ( | ) |
Same as ensure_owns_direct_data but also turns object/collection instances into geometry instances so that they can be owned.
Definition at line 288 of file geometry_set.cc.
References ensure_owns_direct_data(), and get_instances_for_write().
Referenced by blender::bke::bake::GeometryBakeItem::prepare_geometry_for_bake().
| void blender::bke::GeometrySet::ensure_owns_direct_data | ( | ) |
Make sure that the geometry can be cached. This does not ensure ownership of object/collection instances. This is necessary because sometimes components only have read-only or editing access to their data, which might be freed later if this geometry set outlasts the data.
Definition at line 274 of file geometry_set.cc.
References blender::bke::GeometryComponent::ensure_owns_direct_data(), and get_component_for_write().
Referenced by blender::bke::mesh_surface_sample::BaryWeightFromPositionFn::BaryWeightFromPositionFn(), blender::bke::mesh_surface_sample::BaryWeightSampleFn::BaryWeightSampleFn(), blender::bke::mesh_surface_sample::CornerBaryWeightFromPositionFn::CornerBaryWeightFromPositionFn(), ensure_owns_all_data(), blender::bke::modifier_modify_mesh_and_geometry_set(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_proximity_cc::node_geo_exec(), blender::nodes::node_geo_raycast_cc::RaycastFunction::RaycastFunction(), blender::nodes::node_geo_sample_uv_surface_cc::ReverseUVSampleFunction::ReverseUVSampleFunction(), blender::nodes::node_geo_sample_index_cc::SampleIndexFunction::SampleIndexFunction(), blender::nodes::node_geo_sample_nearest_cc::SampleNearestFunction::SampleNearestFunction(), and blender::nodes::node_geo_sample_nearest_surface_cc::SampleNearestSurfaceFunction::SampleNearestSurfaceFunction().
|
static |
Create a new geometry set that only contains the given curves.
Definition at line 432 of file geometry_set.cc.
References replace_curves().
Referenced by blender::create_array_copies(), blender::nodes::node_geo_string_to_curves_cc::create_curve_instances(), blender::create_mirror_copies(), blender::duplicate_strokes(), blender::io::obj::geometry_to_blender_geometry_set(), blender::ed::geometry::get_original_geometry_eval_copy(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), MOD_lineart_gpencil_generate_v3(), blender::nodes::node_geo_curve_primitive_arc_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_circle_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_line_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_quadratic_bezier_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_spiral_cc::node_geo_exec(), blender::nodes::node_geo_curve_primitive_star_cc::node_geo_exec(), and blender::nodes::node_geo_grease_pencil_to_curves_cc::node_geo_exec().
|
static |
Create a new geometry set that only contains the given Grease Pencil data.
Definition at line 446 of file geometry_set.cc.
References replace_grease_pencil().
Referenced by blender::nodes::node_geo_curves_to_grease_pencil_cc::node_geo_exec().
|
static |
Create a new geometry set that only contains the given instances.
Definition at line 439 of file geometry_set.cc.
References replace_instances().
Referenced by blender::create_array_copies(), blender::create_mirror_copies(), blender::duplicate_strokes(), blender::bke::Instances::ensure_geometry_instances(), blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), blender::nodes::node_geo_collection_info_cc::node_geo_exec(), blender::nodes::node_geo_geometry_to_instance_cc::node_geo_exec(), blender::nodes::node_geo_grease_pencil_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_import_obj::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_object_info_cc::node_geo_exec(), and blender::bke::object_get_evaluated_geometry_set().
|
static |
Create a new geometry set that only contains the given mesh.
Definition at line 411 of file geometry_set.cc.
References replace_mesh().
Referenced by blender::ed::object::create_applied_mesh_for_modifier(), blender::io::obj::geometry_to_blender_geometry_set(), blender::ed::geometry::get_original_geometry_eval_copy(), blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), modify_geometry_set(), modify_mesh(), blender::nodes::node_geo_grid_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_import_stl::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_cube_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_grid_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_ico_sphere_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_line_cc::node_geo_exec(), blender::nodes::node_geo_mesh_primitive_uv_sphere_cc::node_geo_exec(), and blender::nodes::nodes_geo_import_ply::node_geo_exec().
|
static |
Create a new geometry set that only contains the given point cloud.
Definition at line 425 of file geometry_set.cc.
References replace_pointcloud().
Referenced by BKE_pointcloud_data_update(), blender::ed::geometry::get_original_geometry_eval_copy(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_geo_exec(), blender::nodes::node_geo_points_cc::node_geo_exec(), blender::io::usd::USDPointsReader::read_object_data(), and blender::io::alembic::AbcPointsReader::readObjectData().
|
static |
Create a new geometry set that only contains the given volume.
Definition at line 418 of file geometry_set.cc.
References replace_volume().
| void blender::bke::GeometrySet::gather_attributes_for_propagation | ( | Span< GeometryComponent::Type > | component_types, |
| GeometryComponent::Type | dst_component_type, | ||
| bool | include_instances, | ||
| const AttributeFilter & | attribute_filter, | ||
| Map< StringRef, AttributeKind > & | r_attributes ) const |
Definition at line 692 of file geometry_set.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), blender::bke::AttributeFilter::allow_skip(), blender::bke::attribute_data_type_highest_complexity(), blender::bke::attribute_domain_highest_priority(), attribute_foreach(), blender::bke::GeometryComponent::attributes(), CD_PROP_STRING, blender::bke::AttributeMetaData::data_type, blender::bke::AttributeMetaData::domain, blender::bke::Instance, blender::bke::GeometryComponent::Instance, and blender::bke::Point.
Referenced by blender::nodes::node_geo_instances_to_points_cc::convert_instances_to_points(), blender::nodes::node_geo_mesh_to_points_cc::geometry_set_mesh_to_points(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), and blender::nodes::node_geo_distribute_points_on_faces_cc::point_distribution_calculate().
| Vector< GeometryComponent::Type > blender::bke::GeometrySet::gather_component_types | ( | bool | include_instances, |
| bool | ignore_empty ) const |
Definition at line 766 of file geometry_set.cc.
References blender::bke::gather_component_types_recursive(), and types.
Referenced by blender::nodes::GeoNodeExecParams::check_input_geometry_set(), and blender::nodes::node_geo_duplicate_elements_cc::duplicate_points().
|
inline |
Definition at line 184 of file BKE_geometry_set.hh.
References BLI_STATIC_ASSERT, get_component(), and blender::bke::is_geometry_component_v.
Referenced by attribute_foreach(), get_component(), get_curve_edit_hints(), get_curves(), get_gizmo_edit_hints(), get_grease_pencil(), get_instances(), get_mesh(), get_pointcloud(), get_volume(), has_curves(), has_grease_pencil(), has_instances(), has_mesh(), has_pointcloud(), and has_volume().
| const GeometryComponent * blender::bke::GeometrySet::get_component | ( | GeometryComponent::Type | component_type | ) | const |
Get the component of the given type. Might return null if the component does not exist yet.
Definition at line 147 of file geometry_set.cc.
Referenced by find_geonode_attribute_rgba(), blender::bke::crazyspace::get_evaluated_curves_deformation(), blender::bke::crazyspace::get_evaluated_grease_pencil_drawing_deformation(), make_duplis_geometry_set_impl(), blender::nodes::node_geo_attribute_domain_size_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec(), blender::nodes::node_geo_remove_attribute_cc::node_geo_exec(), blender::nodes::node_geo_separate_components_cc::node_geo_exec(), blender::nodes::node_geo_sort_elements_cc::node_geo_exec(), blender::nodes::node_geo_split_to_instances_cc::node_geo_exec(), blender::draw::overlay::AttributeViewer::object_sync(), OVERLAY_viewer_attribute_cache_populate(), and populate_cache_for_instance().
|
inline |
Definition at line 174 of file BKE_geometry_set.hh.
References BLI_STATIC_ASSERT, get_component_for_write(), and blender::bke::is_geometry_component_v.
Referenced by ensure_owns_direct_data(), get_component_for_write(), get_curve_edit_hints_for_write(), get_gizmo_edit_hints_for_write(), replace_curves(), replace_grease_pencil(), replace_instances(), replace_mesh(), replace_pointcloud(), and replace_volume().
| GeometryComponent & blender::bke::GeometrySet::get_component_for_write | ( | GeometryComponent::Type | component_type | ) |
This method can only be used when the geometry set is mutable. It returns a mutable geometry component of the given type.
Definition at line 120 of file geometry_set.cc.
References blender::bke::GeometryComponent::create().
Referenced by BKE_curves_data_update(), BKE_grease_pencil_data_update(), blender::ed::object::create_applied_mesh_for_modifier(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::geometry::execute_instances_tasks(), blender::geometry::execute_realize_edit_data_tasks(), blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::geometry::join_component_type(), blender::bke::mesh_build_data(), blender::ed::object::modifier_apply_obdata(), blender::bke::modifier_modify_mesh_and_geometry_set(), blender::modify_mesh(), modify_mesh(), blender::nodes::node_geo_attribute_capture_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_remove_attribute_cc::node_geo_exec(), blender::nodes::node_geo_set_id_cc::node_geo_exec(), blender::nodes::node_geo_set_instance_transform_cc::node_geo_exec(), blender::nodes::node_geo_store_named_attribute_cc::node_geo_exec(), blender::geometry::propagate_instances_to_keep(), blender::io::usd::USDPointsReader::read_object_data(), blender::io::alembic::AbcPointsReader::readObjectData(), blender::geometry::realize_instances(), take_pointcloud_ownership_from_geometry_set(), and take_volume_ownership_from_geometry_set().
| Vector< const GeometryComponent * > blender::bke::GeometrySet::get_components | ( | ) | const |
Get all geometry components in this geometry set for read-only access.
Definition at line 195 of file geometry_set.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append().
Referenced by blender::bke::gather_component_types_recursive(), blender::geometry::gather_realize_tasks_recursive(), blender::nodes::node_geo_attribute_statistic_cc::node_geo_exec(), and blender::nodes::LazyFunctionForForeachGeometryElementZone::prepare_components().
| const CurvesEditHints * blender::bke::GeometrySet::get_curve_edit_hints | ( | ) | const |
Returns read-only curve edit hints or null.
Definition at line 344 of file geometry_set.cc.
References blender::bke::GeometryComponentEditData::curves_edit_hints_, and get_component().
Referenced by blender::nodes::GeoNodeExecParams::check_output_geometry_set().
| CurvesEditHints * blender::bke::GeometrySet::get_curve_edit_hints_for_write | ( | ) |
Returns mutable curve edit hints or null.
Definition at line 569 of file geometry_set.cc.
References blender::bke::GeometryComponentEditData::curves_edit_hints_, get_component_for_write(), and has().
Referenced by blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec().
| const Curves * blender::bke::GeometrySet::get_curves | ( | ) | const |
Returns a read-only curves data-block or null.
Definition at line 332 of file geometry_set.cc.
References blender::bke::CurveComponent::get(), and get_component().
Referenced by BKE_curves_data_update(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::nodes::GeoNodeExecParams::check_input_geometry_set(), compute_boundbox_without_instances(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_curves_to_grease_pencil_cc::curve_instances_to_grease_pencil_layers(), blender::nodes::node_geo_curve_to_mesh_cc::curve_to_mesh(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_curve(), blender::geometry::gather_curves_to_realize(), blender::nodes::node_geo_curve_trim_cc::geometry_set_curve_trim(), blender::ed::greasepencil::join_curves(), blender::geometry::join_curves(), blender::nodes::node_geo_curve_fillet_cc::node_geo_exec(), blender::nodes::node_geo_curve_length_cc::node_geo_exec(), blender::nodes::node_geo_curve_sample_cc::node_geo_exec(), blender::nodes::node_geo_curve_spline_type_cc::node_geo_exec(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_geo_exec(), blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec(), blender::ed::object::object_convert_exec(), replace_curves(), blender::geometry::separate_geometry(), and blender::nodes::LazyFunctionForForeachGeometryElementZone::try_extract_element_geometries().
| Curves * blender::bke::GeometrySet::get_curves_for_write | ( | ) |
Returns a mutable curves data-block or null. No ownership is transferred.
Definition at line 557 of file geometry_set.cc.
References blender::bke::CurveComponent::get_for_write().
Referenced by blender::ed::curves::append_primitive_curve(), blender::ed::greasepencil::clipboard_paste_strokes(), blender::create_array_copies(), blender::create_mirror_copies(), blender::duplicate_strokes(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::greasepencil::grease_pencil_copy_strokes_exec(), blender::ed::greasepencil::grease_pencil_move_to_layer_exec(), MOD_lineart_gpencil_generate_v3(), blender::ed::object::modifier_apply_obdata(), blender::nodes::node_geo_curve_reverse_cc::node_geo_exec(), blender::nodes::node_geo_curve_set_handle_type_cc::node_geo_exec(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_handles_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_normal_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_radius_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_tilt_cc::node_geo_exec(), blender::nodes::node_geo_set_spline_cyclic_cc::node_geo_exec(), blender::nodes::node_geo_set_spline_resolution_cc::node_geo_exec(), blender::io::alembic::AbcCurveReader::read_geometry(), and blender::io::usd::USDCurvesReader::read_geometry().
| const GizmoEditHints * blender::bke::GeometrySet::get_gizmo_edit_hints | ( | ) | const |
Returns read-only gizmo edit hints or null.
Definition at line 350 of file geometry_set.cc.
References get_component(), and blender::bke::GeometryComponentEditData::gizmo_edit_hints_.
| GizmoEditHints * blender::bke::GeometrySet::get_gizmo_edit_hints_for_write | ( | ) |
Returns mutable gizmo edit hints or null.
Definition at line 579 of file geometry_set.cc.
References get_component_for_write(), blender::bke::GeometryComponentEditData::gizmo_edit_hints_, and has().
| const GreasePencil * blender::bke::GeometrySet::get_grease_pencil | ( | ) | const |
Returns a read-only Grease Pencil data-block or null.
Definition at line 356 of file geometry_set.cc.
References blender::bke::GreasePencilComponent::get(), and get_component().
Referenced by BKE_grease_pencil_data_update(), blender::nodes::GeoNodeExecParams::check_input_geometry_set(), compute_boundbox_without_instances(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::geometry::gather_grease_pencils_to_realize(), blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), make_duplis_geometry_set_impl(), blender::nodes::node_geo_curve_length_cc::node_geo_exec(), blender::nodes::node_geo_grease_pencil_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::LazyFunctionForForeachGeometryElementZone::prepare_components(), replace_grease_pencil(), blender::geometry::separate_geometry(), and blender::nodes::LazyFunctionForForeachGeometryElementZone::try_extract_element_geometries().
| GreasePencil * blender::bke::GeometrySet::get_grease_pencil_for_write | ( | ) |
Returns a mutable Grease Pencil data-block or null. No ownership is transferred.
Definition at line 589 of file geometry_set.cc.
References blender::bke::GreasePencilComponent::get_for_write().
Referenced by BKE_grease_pencil_data_update(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_grease_pencil(), blender::nodes::node_geo_curve_trim_cc::geometry_set_curve_trim(), blender::modify_geometry_set(), blender::modify_geometry_set(), blender::nodes::node_geo_curve_fillet_cc::node_geo_exec(), blender::nodes::node_geo_curve_resample_cc::node_geo_exec(), blender::nodes::node_geo_curve_reverse_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_normal_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_radius_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_tilt_cc::node_geo_exec(), blender::nodes::node_geo_set_material_index_cc::node_geo_exec(), blender::nodes::node_geo_set_spline_cyclic_cc::node_geo_exec(), blender::nodes::node_geo_set_spline_resolution_cc::node_geo_exec(), and blender::geometry::separate_geometry().
| const Instances * blender::bke::GeometrySet::get_instances | ( | ) | const |
Returns read-only instances or null.
Definition at line 338 of file geometry_set.cc.
References blender::bke::InstancesComponent::get(), and get_component().
Referenced by attribute_foreach(), blender::ed::spreadsheet::GeometryInstancesTreeView::build_tree(), blender::ed::spreadsheet::GeometryInstancesTreeView::build_tree_for_instances(), blender::nodes::node_geo_instances_to_points_cc::convert_instances_to_points(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_instances(), blender::bke::gather_component_types_recursive(), blender::geometry::gather_curves_to_realize(), blender::geometry::gather_grease_pencils_to_realize(), blender::geometry::gather_meshes_to_realize(), blender::geometry::gather_pointclouds_to_realize(), make_duplis_geometry_set_impl(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_geo_exec(), blender::nodes::node_geo_realize_instances_cc::node_geo_exec(), blender::nodes::node_geo_sort_elements_cc::node_geo_exec(), OVERLAY_viewer_attribute_text(), blender::geometry::propagate_instances_to_keep(), blender::geometry::realize_instances(), replace_instances(), and blender::nodes::LazyFunctionForForeachGeometryElementZone::try_extract_element_geometries().
| Instances * blender::bke::GeometrySet::get_instances_for_write | ( | ) |
Returns mutable instances or null. No ownership is transferred.
Definition at line 563 of file geometry_set.cc.
References blender::bke::InstancesComponent::get_for_write().
Referenced by blender::geometry::delete_selected_instances(), blender::bke::Instances::ensure_geometry_instances(), ensure_owns_all_data(), blender::bke::gather_mutable_geometry_sets(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_rotate_instances_cc::node_geo_exec(), blender::nodes::node_geo_scale_instances_cc::node_geo_exec(), blender::nodes::node_geo_store_named_attribute_cc::node_geo_exec(), blender::nodes::node_geo_translate_instances_cc::node_geo_exec(), and blender::geometry::remove_id_attribute_from_instances().
| const Mesh * blender::bke::GeometrySet::get_mesh | ( | ) | const |
Returns a read-only mesh or null.
Definition at line 308 of file geometry_set.cc.
References blender::bke::MeshComponent::get(), and get_component().
Referenced by blender::bke::mesh_surface_sample::BaryWeightFromPositionFn::BaryWeightFromPositionFn(), BKE_object_get_evaluated_mesh_no_subsurf_unchecked(), blender::nodes::node_geo_raycast_cc::RaycastFunction::call(), blender::nodes::GeoNodeExecParams::check_input_geometry_set(), compute_boundbox_without_instances(), blender::bke::mesh_surface_sample::CornerBaryWeightFromPositionFn::CornerBaryWeightFromPositionFn(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_mesh(), blender::geometry::gather_meshes_to_realize(), blender::nodes::node_geo_mesh_to_points_cc::geometry_set_mesh_to_points(), make_duplis_geometry_set_impl(), modify_geometry_set(), blender::modifyGeometry(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::nodes::node_geo_dual_mesh_cc::node_geo_exec(), blender::nodes::node_geo_edge_paths_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_edge_split_cc::node_geo_exec(), blender::nodes::node_geo_merge_by_distance_cc::node_geo_exec(), blender::nodes::node_geo_mesh_subdivide_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_curve_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_density_grid_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_sdf_grid_cc::node_geo_exec(), blender::nodes::node_geo_subdivision_surface_cc::node_geo_exec(), blender::nodes::node_geo_triangulate_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_on_faces_cc::point_distribution_calculate(), blender::nodes::node_geo_proximity_cc::ProximityFunction::ProximityFunction(), replace_mesh(), blender::nodes::node_geo_sample_nearest_surface_cc::SampleNearestSurfaceFunction::SampleNearestSurfaceFunction(), blender::geometry::separate_geometry(), and blender::nodes::LazyFunctionForForeachGeometryElementZone::try_extract_element_geometries().
| Mesh * blender::bke::GeometrySet::get_mesh_for_write | ( | ) |
Returns a mutable mesh or null. No ownership is transferred.
Definition at line 539 of file geometry_set.cc.
References blender::bke::MeshComponent::get_for_write().
Referenced by curve_calc_modifiers_post(), blender::modifyGeometry(), blender::nodes::node_geo_edge_split_cc::node_geo_exec(), blender::nodes::node_geo_extrude_mesh_cc::node_geo_exec(), blender::nodes::node_geo_flip_faces_cc::node_geo_exec(), blender::nodes::node_geo_set_material_index_cc::node_geo_exec(), blender::nodes::node_geo_set_shade_smooth_cc::node_geo_exec(), blender::nodes::node_geo_store_named_attribute_cc::node_geo_exec(), blender::io::alembic::AbcMeshReader::read_geometry(), blender::io::alembic::AbcSubDReader::read_geometry(), blender::io::usd::USDMeshReader::read_geometry(), and blender::io::usd::USDShapeReader::read_geometry().
| const PointCloud * blender::bke::GeometrySet::get_pointcloud | ( | ) | const |
Returns a read-only point cloud of null.
Definition at line 320 of file geometry_set.cc.
References blender::bke::PointCloudComponent::get(), and get_component().
Referenced by blender::nodes::GeoNodeExecParams::check_input_geometry_set(), compute_boundbox_without_instances(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_pointcloud(), blender::geometry::gather_pointclouds_to_realize(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), make_duplis_geometry_set_impl(), modify_geometry_set(), blender::nodes::node_geo_merge_by_distance_cc::node_geo_exec(), blender::nodes::node_geo_points_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_proximity_cc::ProximityFunction::ProximityFunction(), replace_pointcloud(), blender::geometry::separate_geometry(), and blender::nodes::LazyFunctionForForeachGeometryElementZone::try_extract_element_geometries().
| PointCloud * blender::bke::GeometrySet::get_pointcloud_for_write | ( | ) |
Returns a mutable point cloud or null. No ownership is transferred.
Definition at line 545 of file geometry_set.cc.
References blender::bke::PointCloudComponent::get_for_write().
Referenced by blender::nodes::node_geo_set_point_radius_cc::node_geo_exec(), blender::io::alembic::AbcPointsReader::read_geometry(), and blender::io::usd::USDPointsReader::read_geometry().
| const Volume * blender::bke::GeometrySet::get_volume | ( | ) | const |
Returns a read-only volume or null.
Definition at line 326 of file geometry_set.cc.
References blender::bke::VolumeComponent::get(), and get_component().
Referenced by compute_boundbox_without_instances(), make_duplis_geometry_set_impl(), and replace_volume().
| Volume * blender::bke::GeometrySet::get_volume_for_write | ( | ) |
Returns a mutable volume or null. No ownership is transferred.
Definition at line 551 of file geometry_set.cc.
References blender::bke::VolumeComponent::get_for_write().
Referenced by modify_geometry_set(), modify_geometry_set(), and blender::nodes::node_geo_get_named_grid_cc::node_geo_exec().
|
inline |
Definition at line 191 of file BKE_geometry_set.hh.
References BLI_STATIC_ASSERT, has(), and blender::bke::is_geometry_component_v.
Referenced by attribute_foreach(), get_curve_edit_hints_for_write(), get_gizmo_edit_hints_for_write(), and has().
| bool blender::bke::GeometrySet::has | ( | const GeometryComponent::Type | component_type | ) | const |
Definition at line 152 of file geometry_set.cc.
References blender::ImplicitSharingPtr< T, IsStrong >::has_value().
Referenced by blender::ed::spreadsheet::data_source_from_geometry(), blender::bke::crazyspace::get_evaluated_grease_pencil_drawing_deformation(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::bke::modifier_modify_mesh_and_geometry_set(), blender::nodes::node_geo_attribute_capture_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_remove_attribute_cc::node_geo_exec(), blender::nodes::node_geo_separate_components_cc::node_geo_exec(), blender::nodes::node_geo_set_id_cc::node_geo_exec(), blender::nodes::node_geo_store_named_attribute_cc::node_geo_exec(), take_pointcloud_ownership_from_geometry_set(), and take_volume_ownership_from_geometry_set().
|
inline |
Definition at line 197 of file BKE_geometry_set.hh.
References BLI_STATIC_ASSERT, int, and blender::bke::is_geometry_component_v.
Referenced by blender::bke::object_has_geometry_set_instances().
| bool blender::bke::GeometrySet::has_curves | ( | ) | const |
Returns true when the geometry set has a curves component that has a curves data-block.
Definition at line 381 of file geometry_set.cc.
References get_component(), and blender::bke::CurveComponent::has_curves().
Referenced by blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_curve_to_mesh_cc::curve_to_mesh(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points(), blender::nodes::node_geo_curve_trim_cc::geometry_set_curve_trim(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), is_empty(), blender::ed::greasepencil::join_curves(), blender::geometry::join_curves(), blender::ed::object::modifier_apply_obdata(), blender::nodes::node_geo_curve_fillet_cc::node_geo_exec(), blender::nodes::node_geo_curve_length_cc::node_geo_exec(), blender::nodes::node_geo_curve_sample_cc::node_geo_exec(), blender::nodes::node_geo_curve_spline_type_cc::node_geo_exec(), blender::nodes::node_geo_curve_subdivide_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_points_cc::node_geo_exec(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_geo_exec(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec(), blender::nodes::node_geo_split_to_instances_cc::node_geo_exec(), and blender::io::usd::USDCurvesReader::read_geometry().
| bool blender::bke::GeometrySet::has_grease_pencil | ( | ) | const |
Returns true when the geometry set has a Grease Pencil component that has grease pencil data.
Definition at line 399 of file geometry_set.cc.
References get_component(), and blender::bke::GreasePencilComponent::has_grease_pencil().
Referenced by BKE_grease_pencil_data_update(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points(), blender::nodes::node_geo_curve_trim_cc::geometry_set_curve_trim(), is_empty(), blender::modify_geometry_set(), blender::modify_geometry_set(), blender::nodes::node_geo_convex_hull_cc::node_geo_exec(), blender::nodes::node_geo_curve_fillet_cc::node_geo_exec(), blender::nodes::node_geo_curve_length_cc::node_geo_exec(), blender::nodes::node_geo_curve_subdivide_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_points_cc::node_geo_exec(), and blender::nodes::node_geo_instance_on_points_cc::node_geo_exec().
| bool blender::bke::GeometrySet::has_instances | ( | ) | const |
Returns true when the geometry set has an instances component that has at least one instance.
Definition at line 368 of file geometry_set.cc.
References blender::bke::InstancesComponent::get(), get_component(), and blender::bke::Instances::instances_num().
Referenced by attribute_foreach(), blender::nodes::GeoNodeExecParams::check_input_geometry_set(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_instances(), blender::bke::Instances::ensure_geometry_instances(), blender::bke::gather_mutable_geometry_sets(), is_empty(), blender::nodes::node_geo_attribute_capture_cc::node_geo_exec(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_geo_exec(), blender::nodes::node_geo_instances_to_points_cc::node_geo_exec(), blender::nodes::node_geo_realize_instances_cc::node_geo_exec(), blender::nodes::node_geo_set_instance_transform_cc::node_geo_exec(), blender::nodes::node_geo_split_to_instances_cc::node_geo_exec(), blender::nodes::node_geo_store_named_attribute_cc::node_geo_exec(), blender::geometry::realize_instances(), blender::geometry::realize_instances(), and blender::geometry::separate_geometry().
| bool blender::bke::GeometrySet::has_mesh | ( | ) | const |
Returns true when the geometry set has a mesh component that has a mesh.
Definition at line 314 of file geometry_set.cc.
References get_component(), and blender::bke::MeshComponent::has_mesh().
Referenced by blender::nodes::node_geo_raycast_cc::RaycastFunction::call(), blender::ed::object::create_applied_mesh_for_modifier(), curve_calc_modifiers_post(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points(), evaluate_surface_object(), is_empty(), modify_geometry_set(), blender::nodes::node_geo_mesh_to_volume_cc::node_geo_exec(), blender::nodes::node_geo_split_to_instances_cc::node_geo_exec(), blender::nodes::node_geo_triangulate_cc::node_geo_exec(), blender::bke::object_get_evaluated_geometry_set(), blender::nodes::node_geo_distribute_points_on_faces_cc::point_distribution_calculate(), blender::nodes::node_geo_proximity_cc::ProximityFunction::ProximityFunction(), and blender::io::usd::USDNurbsReader::read_geometry().
| bool blender::bke::GeometrySet::has_pointcloud | ( | ) | const |
Returns true when the geometry set has a point cloud component that has a point cloud.
Definition at line 362 of file geometry_set.cc.
References get_component(), and blender::bke::PointCloudComponent::has_pointcloud().
Referenced by blender::nodes::node_geo_duplicate_elements_cc::duplicate_points(), is_empty(), blender::ed::object::modifier_apply_obdata(), modify_geometry_set(), blender::nodes::node_geo_split_to_instances_cc::node_geo_exec(), blender::nodes::node_geo_proximity_cc::ProximityFunction::ProximityFunction(), and blender::io::alembic::AbcPointsReader::read_geometry().
| bool blender::bke::GeometrySet::has_realized_data | ( | ) | const |
Returns true when the geometry set has any data that is not an instance.
Definition at line 387 of file geometry_set.cc.
References blender::bke::GeometryComponent::Instance.
Referenced by blender::nodes::GeoNodeExecParams::check_input_geometry_set(), and blender::geometry::separate_geometry().
| bool blender::bke::GeometrySet::has_volume | ( | ) | const |
Returns true when the geometry set has a volume component that has a volume.
Definition at line 375 of file geometry_set.cc.
References get_component(), and blender::bke::VolumeComponent::has_volume().
Referenced by is_empty(), and blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec().
|
inline |
Definition at line 449 of file BKE_geometry_set.hh.
References blender::get_default_hash().
| bool blender::bke::GeometrySet::is_empty | ( | ) | const |
Return true if the geometry set has any component that isn't empty.
Definition at line 405 of file geometry_set.cc.
References has_curves(), has_grease_pencil(), has_instances(), has_mesh(), has_pointcloud(), and has_volume().
Referenced by blender::nodes::node_geo_duplicate_elements_cc::node_geo_exec().
| void blender::bke::GeometrySet::keep_only | ( | Span< GeometryComponent::Type > | component_types | ) |
Remove all geometry components with types that are not in the provided list.
Definition at line 163 of file geometry_set.cc.
References blender::Span< T >::contains().
Referenced by blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), keep_only_during_modify(), blender::nodes::node_geo_edge_paths_to_curves_cc::node_geo_exec(), and blender::nodes::node_geo_instances_to_points_cc::node_geo_exec().
| void blender::bke::GeometrySet::keep_only_during_modify | ( | Span< GeometryComponent::Type > | component_types | ) |
Keeps the provided geometry types, but also instances and edit data. Instances must not be removed while using modify_geometry_sets.
Definition at line 174 of file geometry_set.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_non_duplicates(), blender::bke::GeometryComponent::Edit, blender::bke::GeometryComponent::Instance, and keep_only().
Referenced by blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points(), blender::nodes::node_geo_mesh_to_points_cc::geometry_set_mesh_to_points(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), blender::nodes::node_geo_bounding_box_cc::node_geo_exec(), blender::nodes::node_geo_convex_hull_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_curve_cc::node_geo_exec(), blender::nodes::node_geo_points_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_volume_to_mesh_cc::node_geo_exec(), and remove_geometry_during_modify().
| void blender::bke::GeometrySet::modify_geometry_sets | ( | ForeachSubGeometryCallback | callback | ) |
Modify every (recursive) instance separately. This is often more efficient than realizing all instances just to change the same thing on all of them.
Definition at line 793 of file geometry_set.cc.
References callback, blender::Vector< T, InlineBufferCapacity, Allocator >::first(), blender::bke::gather_mutable_geometry_sets(), blender::threading::parallel_for_each(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by blender::nodes::node_geo_curve_to_points_cc::curve_to_points(), blender::nodes::node_geo_curve_to_points_cc::grease_pencil_to_points(), blender::nodes::node_geo_attribute_capture_cc::node_geo_exec(), blender::nodes::node_geo_bounding_box_cc::node_geo_exec(), blender::nodes::node_geo_convex_hull_cc::node_geo_exec(), blender::nodes::node_geo_curve_fill_cc::node_geo_exec(), blender::nodes::node_geo_curve_fillet_cc::node_geo_exec(), blender::nodes::node_geo_curve_resample_cc::node_geo_exec(), blender::nodes::node_geo_curve_reverse_cc::node_geo_exec(), blender::nodes::node_geo_curve_set_handle_type_cc::node_geo_exec(), blender::nodes::node_geo_curve_spline_type_cc::node_geo_exec(), blender::nodes::node_geo_curve_subdivide_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_curve_trim_cc::node_geo_exec(), blender::nodes::node_geo_delete_geometry_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_geo_exec(), blender::nodes::node_geo_dual_mesh_cc::node_geo_exec(), blender::nodes::node_geo_duplicate_elements_cc::node_geo_exec(), blender::nodes::node_geo_edge_paths_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_edge_split_cc::node_geo_exec(), blender::nodes::node_geo_extrude_mesh_cc::node_geo_exec(), blender::nodes::node_geo_flip_faces_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_material_replace_cc::node_geo_exec(), blender::nodes::node_geo_merge_by_distance_cc::node_geo_exec(), blender::nodes::node_geo_merge_layers_cc::node_geo_exec(), blender::nodes::node_geo_mesh_subdivide_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_curve_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_points_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_volume_cc::node_geo_exec(), blender::nodes::node_geo_points_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_points_to_vertices_cc::node_geo_exec(), blender::nodes::node_geo_points_to_volume_cc::node_geo_exec(), blender::nodes::node_geo_remove_attribute_cc::node_geo_exec(), blender::nodes::node_geo_separate_geometry_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_handles_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_normal_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_radius_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_tilt_cc::node_geo_exec(), blender::nodes::node_geo_set_material_index_cc::node_geo_exec(), blender::nodes::node_geo_set_point_radius_cc::node_geo_exec(), blender::nodes::node_geo_set_shade_smooth_cc::node_geo_exec(), blender::nodes::node_geo_set_spline_cyclic_cc::node_geo_exec(), blender::nodes::node_geo_set_spline_resolution_cc::node_geo_exec(), blender::nodes::node_geo_sort_elements_cc::node_geo_exec(), blender::nodes::node_geo_store_named_attribute_cc::node_geo_exec(), blender::nodes::node_geo_subdivision_surface_cc::node_geo_exec(), blender::nodes::node_geo_tool_set_face_set_cc::node_geo_exec(), blender::nodes::node_geo_triangulate_cc::node_geo_exec(), blender::nodes::node_geo_volume_to_mesh_cc::node_geo_exec(), blender::bke::bake::GeometryBakeItem::prepare_geometry_for_bake(), blender::geometry::remove_id_attribute_from_instances(), and blender::bke::bake::GeometryBakeItem::try_restore_data_blocks().
|
default |
|
default |
| bool blender::bke::GeometrySet::owns_direct_data | ( | ) | const |
Definition at line 296 of file geometry_set.cc.
|
static |
Definition at line 630 of file geometry_set.cc.
References blender::bke::MutableAttributeAccessor::add(), blender::bke::AttributeFilter::allow_skip(), blender::array_utils::copy(), blender::bke::AttributeIter::data_type, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), init(), blender::bke::Instance, blender::bke::Layer, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, and blender::bke::GSpanAttributeWriter::span.
Referenced by blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), and blender::nodes::node_geo_instance_on_points_cc::node_geo_exec().
|
inline |
Definition at line 204 of file BKE_geometry_set.hh.
References BLI_STATIC_ASSERT, blender::bke::is_geometry_component_v, and remove().
Referenced by remove(), replace_curves(), replace_grease_pencil(), replace_instances(), replace_mesh(), replace_pointcloud(), and replace_volume().
| void blender::bke::GeometrySet::remove | ( | const GeometryComponent::Type | component_type | ) |
Definition at line 158 of file geometry_set.cc.
Referenced by blender::geometry::delete_selected_instances(), blender::nodes::node_geo_sort_elements_cc::node_geo_exec(), blender::geometry::separate_geometry(), take_pointcloud_ownership_from_geometry_set(), and take_volume_ownership_from_geometry_set().
| void blender::bke::GeometrySet::remove_geometry_during_modify | ( | ) |
Definition at line 182 of file geometry_set.cc.
References keep_only_during_modify().
Referenced by blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::nodes::node_geo_mesh_to_points_cc::geometry_set_mesh_to_points(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), blender::nodes::node_geo_bounding_box_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), and blender::nodes::node_geo_mesh_to_curve_cc::node_geo_exec().
| void blender::bke::GeometrySet::replace_curves | ( | Curves * | curves, |
| GeometryOwnershipType | ownership = GeometryOwnershipType::Owned ) |
Clear the existing curves data-block and replace it with the given one.
Definition at line 468 of file geometry_set.cc.
References get_component_for_write(), get_curves(), remove(), and blender::bke::CurveComponent::replace().
Referenced by curve_calc_modifiers_post(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_curve(), blender::geometry::execute_realize_curve_tasks(), from_curves(), blender::nodes::node_geo_curve_trim_cc::geometry_set_curve_trim(), blender::nodes::node_geo_curve_fillet_cc::node_geo_exec(), blender::nodes::node_geo_curve_spline_type_cc::node_geo_exec(), blender::nodes::node_geo_edge_paths_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_curve_cc::node_geo_exec(), blender::nodes::node_geo_points_to_curves_cc::node_geo_exec(), blender::geometry::separate_geometry(), and blender::ed::spreadsheet::spreadsheet_get_display_geometry_set().
| void blender::bke::GeometrySet::replace_grease_pencil | ( | GreasePencil * | grease_pencil, |
| GeometryOwnershipType | ownership = GeometryOwnershipType::Owned ) |
Clear the existing Grease Pencil data-block and replace it with the given one.
Definition at line 524 of file geometry_set.cc.
References get_component_for_write(), get_grease_pencil(), remove(), and blender::bke::GreasePencilComponent::replace().
Referenced by BKE_grease_pencil_data_update(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::geometry::execute_realize_grease_pencil_tasks(), from_grease_pencil(), blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), blender::nodes::node_geo_curve_to_points_cc::grease_pencil_to_points(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::geometry::separate_geometry(), and blender::ed::spreadsheet::spreadsheet_get_display_geometry_set().
| void blender::bke::GeometrySet::replace_instances | ( | Instances * | instances, |
| GeometryOwnershipType | ownership = GeometryOwnershipType::Owned ) |
Clear the existing instances and replace them with the given one.
Definition at line 482 of file geometry_set.cc.
References get_component_for_write(), get_instances(), remove(), and blender::bke::InstancesComponent::replace().
Referenced by blender::geometry::execute_instances_tasks(), from_instances(), blender::nodes::node_geo_sort_elements_cc::node_geo_exec(), and blender::bke::InstanceReference::to_geometry_set().
| void blender::bke::GeometrySet::replace_mesh | ( | Mesh * | mesh, |
| GeometryOwnershipType | ownership = GeometryOwnershipType::Owned ) |
Clear the existing mesh and replace it with the given one.
Definition at line 454 of file geometry_set.cc.
References get_component_for_write(), get_mesh(), remove(), and blender::bke::MeshComponent::replace().
Referenced by blender::bke::add_final_mesh_as_geometry_component(), curve_calc_modifiers_post(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_mesh(), evaluate_surface_object(), blender::geometry::execute_realize_mesh_tasks(), from_mesh(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), blender::bke::bake::load_geometry(), blender::bke::modifier_modify_mesh_and_geometry_set(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::nodes::node_geo_bounding_box_cc::node_geo_exec(), blender::nodes::node_geo_convex_hull_cc::node_geo_exec(), blender::nodes::node_geo_dual_mesh_cc::node_geo_exec(), blender::nodes::node_geo_merge_by_distance_cc::node_geo_exec(), blender::nodes::node_geo_triangulate_cc::node_geo_exec(), blender::nodes::node_geo_volume_to_mesh_cc::node_geo_exec(), blender::io::alembic::AbcMeshReader::read_geometry(), blender::io::alembic::AbcSubDReader::read_geometry(), blender::io::usd::USDMeshReader::read_geometry(), blender::io::usd::USDNurbsReader::read_geometry(), blender::io::usd::USDShapeReader::read_geometry(), blender::geometry::separate_geometry(), and blender::ed::spreadsheet::spreadsheet_get_display_geometry_set().
| void blender::bke::GeometrySet::replace_pointcloud | ( | PointCloud * | pointcloud, |
| GeometryOwnershipType | ownership = GeometryOwnershipType::Owned ) |
Clear the existing point cloud and replace with the given one.
Definition at line 496 of file geometry_set.cc.
References get_component_for_write(), get_pointcloud(), remove(), and blender::bke::PointCloudComponent::replace().
Referenced by blender::nodes::node_geo_instances_to_points_cc::convert_instances_to_points(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_pointcloud(), blender::geometry::execute_realize_pointcloud_tasks(), from_pointcloud(), blender::nodes::node_geo_mesh_to_points_cc::geometry_set_mesh_to_points(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::nodes::node_geo_merge_by_distance_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_on_faces_cc::point_distribution_calculate(), blender::io::alembic::AbcPointsReader::read_geometry(), blender::io::usd::USDPointsReader::read_geometry(), blender::geometry::separate_geometry(), and blender::ed::spreadsheet::spreadsheet_get_display_geometry_set().
| void blender::bke::GeometrySet::replace_volume | ( | Volume * | volume, |
| GeometryOwnershipType | ownership = GeometryOwnershipType::Owned ) |
Clear the existing volume and replace with the given one.
Definition at line 510 of file geometry_set.cc.
References get_component_for_write(), get_volume(), remove(), and blender::bke::VolumeComponent::replace().
Referenced by BKE_volume_data_update(), from_volume(), modify_geometry_set(), and blender::nodes::node_geo_volume_cube_cc::node_geo_exec().
|
friend |
Definition at line 227 of file geometry_set.cc.
|
friend |
Definition at line 443 of file BKE_geometry_set.hh.
| std::string blender::bke::GeometrySet::name |
A user defined name for this geometry. It is not expected to be unique. Its main purpose is help debugging instance trees. It may eventually also be used when exporting instance trees or when creating separate objects from them.
Definition at line 157 of file BKE_geometry_set.hh.
Referenced by blender::nodes::geo_eval_log::GeometryInfoLog::GeometryInfoLog(), blender::geometry::join_geometries(), blender::bke::InstanceReference::name(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_geo_exec(), blender::nodes::node_geo_grease_pencil_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec(), blender::nodes::node_geo_object_info_cc::node_geo_exec(), blender::nodes::node_geo_realize_instances_cc::node_geo_exec(), blender::nodes::node_geo_separate_components_cc::node_geo_exec(), blender::nodes::node_geo_set_geometry_name::node_geo_exec(), and blender::nodes::node_geo_split_to_instances_cc::node_geo_exec().