|
| Span< StringRef > | blender::ed::curves::get_curves_selection_attribute_names (const bke::CurvesGeometry &curves) |
| |
| Span< StringRef > | blender::ed::curves::get_curves_all_selection_attribute_names () |
| |
| Span< StringRef > | blender::ed::curves::get_curves_bezier_selection_attribute_names (const bke::CurvesGeometry &curves) |
| |
| void | blender::ed::curves::remove_selection_attributes (bke::MutableAttributeAccessor &attributes, Span< StringRef > selection_attribute_names) |
| |
| Span< float3 > | blender::ed::curves::get_selection_attribute_positions (const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const StringRef attribute_name) |
| |
| static Vector< bke::GSpanAttributeWriter > | blender::ed::curves::init_selection_writers (bke::CurvesGeometry &curves, bke::AttrDomain selection_domain) |
| |
| static void | blender::ed::curves::finish_attribute_writers (MutableSpan< bke::GSpanAttributeWriter > attribute_writers) |
| |
| static bke::GSpanAttributeWriter & | blender::ed::curves::selection_attribute_writer_by_name (MutableSpan< bke::GSpanAttributeWriter > selections, StringRef attribute_name) |
| |
| static void | blender::ed::curves::init_selectable_foreach (const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, Span< StringRef > &r_bezier_attribute_names, Span< float3 > &r_positions, std::array< Span< float3 >, 2 > &r_bezier_handle_positions, IndexMaskMemory &r_memory, IndexMask &r_bezier_curves) |
| |
| void | blender::ed::curves::foreach_selectable_point_range (const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, SelectionRangeFn range_consumer) |
| |
| void | blender::ed::curves::foreach_selectable_curve_range (const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, SelectionRangeFn range_consumer) |
| |
| static bool | blender::ed::curves::contains (const VArray< bool > &varray, const IndexMask &indices_to_check, const bool value) |
| |
| static bool | blender::ed::curves::contains (const VArray< bool > &varray, const IndexRange range_to_check, const bool value) |
| |
| static void | blender::ed::curves::invert_selection (MutableSpan< float > selection) |
| |
| static void | blender::ed::curves::invert_selection (GMutableSpan selection) |
| |
| static void | blender::ed::curves::invert_selection (MutableSpan< float > selection, const IndexMask &mask) |
| |
| static void | blender::ed::curves::invert_selection (GMutableSpan selection, const IndexMask &mask) |
| |
| static std::optional< FindClosestData > | blender::ed::curves::find_closest_point_to_screen_co (const ARegion *region, const Span< float3 > positions, const float4x4 &projection, const IndexMask &points_mask, const float2 mouse_pos, float radius, const FindClosestData &initial_closest) |
| |
| static std::optional< FindClosestData > | blender::ed::curves::find_closest_curve_to_screen_co (const ARegion *region, const OffsetIndices< int > points_by_curve, const Span< float3 > positions, const VArray< bool > &cyclic, const float4x4 &projection, const IndexMask &curves_mask, const float2 mouse_pos, float radius, const FindClosestData &initial_closest) |
| |
| template<typename PointSelectFn , typename LineSelectFn > |
| IndexMask | blender::ed::curves::select_mask_from_predicates (const bke::CurvesGeometry &curves, const IndexMask &mask, const bke::AttrDomain selection_domain, IndexMaskMemory &memory, PointSelectFn &&point_predicate, LineSelectFn &&line_predicate) |
| |
|
Selection on curves can be stored on either attribute domain: either per-curve or per-point. It can be stored with a float or boolean data-type. The boolean data-type is faster, smaller, and corresponds better to edit-mode selections, but the float data type is useful for soft selection (like masking) in sculpt mode.
The attribute API is used to do the necessary type and domain conversions when necessary, and can handle most interaction with the selection attribute, but these functions implement some helpful utilities on top of that.
|
| IndexMask | blender::ed::curves::retrieve_selected_curves (const bke::CurvesGeometry &curves, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::retrieve_selected_curves (const Curves &curves_id, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::retrieve_selected_points (const bke::CurvesGeometry &curves, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::retrieve_selected_points (const bke::CurvesGeometry &curves, StringRef attribute_name, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::retrieve_selected_points (const Curves &curves_id, IndexMaskMemory &memory) |
| |
| void | blender::ed::curves::foreach_selection_attribute_writer (bke::CurvesGeometry &curves, bke::AttrDomain selection_domain, blender::FunctionRef< void(bke::GSpanAttributeWriter &selection)> fn) |
| |
| bke::GSpanAttributeWriter | blender::ed::curves::ensure_selection_attribute (bke::CurvesGeometry &curves, bke::AttrDomain selection_domain, eCustomDataType create_type, StringRef attribute_name) |
| |
| void | blender::ed::curves::fill_selection_false (GMutableSpan selection) |
| |
| void | blender::ed::curves::fill_selection_true (GMutableSpan selection) |
| |
| void | blender::ed::curves::fill_selection (GMutableSpan selection, bool value) |
| |
| void | blender::ed::curves::fill_selection_false (GMutableSpan selection, const IndexMask &mask) |
| |
| void | blender::ed::curves::fill_selection_true (GMutableSpan selection, const IndexMask &mask) |
| |
| bool | blender::ed::curves::has_anything_selected (const VArray< bool > &varray, const IndexRange range_to_check) |
| |
| bool | blender::ed::curves::has_anything_selected (const VArray< bool > &varray, const IndexMask &indices_to_check) |
| |
| bool | blender::ed::curves::has_anything_selected (const bke::CurvesGeometry &curves) |
| |
| bool | blender::ed::curves::has_anything_selected (const bke::CurvesGeometry &curves, bke::AttrDomain selection_domain) |
| |
| bool | blender::ed::curves::has_anything_selected (const bke::CurvesGeometry &curves, bke::AttrDomain selection_domain, const IndexMask &mask) |
| |
| bool | blender::ed::curves::has_anything_selected (const GSpan selection) |
| |
| void | blender::ed::curves::select_all (bke::CurvesGeometry &curves, const IndexMask &mask, const bke::AttrDomain selection_domain, int action) |
| |
| void | blender::ed::curves::select_all (bke::CurvesGeometry &curves, const bke::AttrDomain selection_domain, int action) |
| |
| void | blender::ed::curves::select_linked (bke::CurvesGeometry &curves, const IndexMask &curves_mask) |
| |
| void | blender::ed::curves::select_linked (bke::CurvesGeometry &curves) |
| |
| void | blender::ed::curves::select_alternate (bke::CurvesGeometry &curves, const IndexMask &curves_mask, const bool deselect_ends) |
| |
| void | blender::ed::curves::select_alternate (bke::CurvesGeometry &curves, const bool deselect_ends) |
| |
| void | blender::ed::curves::select_adjacent (bke::CurvesGeometry &curves, const IndexMask &curves_mask, const bool deselect) |
| |
| void | blender::ed::curves::select_adjacent (bke::CurvesGeometry &curves, const bool deselect) |
| |
| void | blender::ed::curves::apply_selection_operation_at_index (GMutableSpan selection, const int index, const eSelectOp sel_op) |
| |
| std::optional< FindClosestData > | blender::ed::curves::closest_elem_find_screen_space (const ViewContext &vc, const OffsetIndices< int > points_by_curve, const Span< float3 > positions, const VArray< bool > &cyclic, const float4x4 &projection, const IndexMask &mask, const bke::AttrDomain domain, const int2 coord, const FindClosestData &initial_closest) |
| |
| bool | blender::ed::curves::select_box (const ViewContext &vc, bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const float4x4 &projection, const IndexMask &selection_mask, const IndexMask &bezier_mask, const bke::AttrDomain selection_domain, const rcti &rect, const eSelectOp sel_op) |
| |
| bool | blender::ed::curves::select_lasso (const ViewContext &vc, bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const float4x4 &projection_matrix, const IndexMask &selection_mask, const IndexMask &bezier_mask, const bke::AttrDomain selection_domain, const Span< int2 > lasso_coords, const eSelectOp sel_op) |
| |
| bool | blender::ed::curves::select_circle (const ViewContext &vc, bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const float4x4 &projection, const IndexMask &selection_mask, const IndexMask &bezier_mask, const bke::AttrDomain selection_domain, const int2 coord, const float radius, const eSelectOp sel_op) |
| |
| IndexMask | blender::ed::curves::select_adjacent_mask (const bke::CurvesGeometry &curves, const IndexMask &curves_mask, const StringRef attribute_name, const bool deselect, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::select_adjacent_mask (const bke::CurvesGeometry &curves, const StringRef attribute_name, const bool deselect, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::select_box_mask (const ViewContext &vc, const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const float4x4 &projection, const IndexMask &selection_mask, const IndexMask &bezier_mask, const bke::AttrDomain selection_domain, const StringRef attribute_name, const rcti &rect, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::select_lasso_mask (const ViewContext &vc, const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const float4x4 &projection, const IndexMask &selection_mask, const IndexMask &bezier_mask, const bke::AttrDomain selection_domain, const StringRef attribute_name, const Span< int2 > lasso_coords, IndexMaskMemory &memory) |
| |
| IndexMask | blender::ed::curves::select_circle_mask (const ViewContext &vc, const bke::CurvesGeometry &curves, const bke::crazyspace::GeometryDeformation &deformation, const float4x4 &projection, const IndexMask &selection_mask, const IndexMask &bezier_mask, const bke::AttrDomain selection_domain, const StringRef attribute_name, const int2 coord, const float radius, IndexMaskMemory &memory) |
| |