|
Blender V5.0
|
Low-level operations for grease pencil. More...
#include <atomic>#include "BLI_color_types.hh"#include "BLI_implicit_sharing_ptr.hh"#include "BLI_map.hh"#include "BLI_math_matrix_types.hh"#include "BLI_math_vector_types.hh"#include "BLI_offset_indices.hh"#include "BLI_shared_cache.hh"#include "BLI_virtual_array_fwd.hh"#include "DNA_grease_pencil_types.h"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::bke |
| namespace | blender::bke::bake |
| namespace | blender::bke::greasepencil |
Macros | |
| #define | TREENODE_COMMON_METHODS |
| #define | TREENODE_COMMON_METHODS_FORWARD_IMPL(class_name) |
Typedefs | |
| using | blender::bke::greasepencil::FramesMapKeyT = int |
Variables | |
| constexpr float | blender::bke::greasepencil::LEGACY_RADIUS_CONVERSION_FACTOR = 1.0f / 2000.0f |
Low-level operations for grease pencil.
Definition in file BKE_grease_pencil.hh.
| #define TREENODE_COMMON_METHODS |
Definition at line 216 of file BKE_grease_pencil.hh.
| #define TREENODE_COMMON_METHODS_FORWARD_IMPL | ( | class_name | ) |
Definition at line 232 of file BKE_grease_pencil.hh.
| GreasePencil * BKE_grease_pencil_add | ( | Main * | bmain, |
| const char * | name ) |
Definition at line 2027 of file grease_pencil.cc.
References BKE_id_new(), and name.
Referenced by BKE_object_obdata_add_from_type(), blender::ed::object::convert_curves_legacy_to_grease_pencil(), blender::ed::object::convert_font_to_grease_pencil(), blender::ed::object::convert_mesh_to_grease_pencil(), blender::bke::tests::ArmatureDeformTestBase::create_test_grease_pencil_object(), and blender::ed::greasepencil::duplicate_grease_pencil_object().
| GreasePencil * BKE_grease_pencil_copy_for_eval | ( | const GreasePencil * | grease_pencil_src | ) |
Definition at line 2040 of file grease_pencil.cc.
References BKE_id_copy_ex(), GreasePencil::id, LIB_ID_COPY_LOCALIZE, and GreasePencil::runtime.
Referenced by blender::ed::object::convert_curves_to_grease_pencil(), blender::bke::GreasePencilComponent::copy(), blender::bke::GreasePencilComponent::ensure_owns_direct_data(), blender::geometry::execute_realize_grease_pencil_tasks(), blender::bke::GreasePencilComponent::get_for_write(), and blender::ed::geometry::get_original_geometry_eval_copy().
| void BKE_grease_pencil_copy_layer_group_parameters | ( | const blender::bke::greasepencil::LayerGroup & | src, |
| blender::bke::greasepencil::LayerGroup & | dst ) |
Definition at line 2086 of file grease_pencil.cc.
References blender::bke::greasepencil::LayerGroup::as_node(), GreasePencilLayerTreeNode::color, GreasePencilLayerTreeGroup::color_tag, copy_v3_v3(), and GreasePencilLayerTreeNode::flag.
Referenced by blender::ed::greasepencil::copy_layer_group_recursive(), and blender::ed::greasepencil::copy_layer_groups_without_layers().
| void BKE_grease_pencil_copy_layer_parameters | ( | const blender::bke::greasepencil::Layer & | src, |
| blender::bke::greasepencil::Layer & | dst ) |
Definition at line 2059 of file grease_pencil.cc.
References GreasePencilLayer::active_mask_index, blender::bke::greasepencil::Layer::as_node(), GreasePencilLayer::blend_mode, BLI_addtail(), GreasePencilLayerTreeNode::color, copy_m4_m4(), copy_v3_v3(), GreasePencilLayerTreeNode::flag, LISTBASE_FOREACH, GreasePencilLayer::masks, GreasePencilLayer::opacity, GreasePencilLayer::parent, GreasePencilLayer::parentinv, GreasePencilLayer::parsubstr, GreasePencilLayer::rotation, GreasePencilLayer::scale, blender::bke::greasepencil::Layer::set_parent_bone_name(), blender::bke::greasepencil::Layer::set_view_layer_name(), GreasePencilLayer::translation, and GreasePencilLayer::viewlayername.
Referenced by blender::ed::greasepencil::copy_layer(), blender::ed::greasepencil::copy_layer_and_frames_to_target_object(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::geometry::execute_realize_grease_pencil_task(), blender::ed::greasepencil::find_or_create_layer_in_dst_by_name(), blender::ed::greasepencil::merge_layers(), and blender::geometry::separate_grease_pencil_layer_selection().
| void BKE_grease_pencil_copy_parameters | ( | const GreasePencil & | src, |
| GreasePencil & | dst ) |
Copy everything except the layer tree and the drawings.
Definition at line 2048 of file grease_pencil.cc.
References GreasePencil::attributes_active_index, BLI_duplicatelist(), GreasePencil::flag, GreasePencil::material_array, GreasePencil::material_array_num, MEM_dupallocN(), GreasePencil::onion_skinning_settings, GreasePencil::vertex_group_active_index, and GreasePencil::vertex_group_names.
Referenced by blender::ed::greasepencil::duplicate_grease_pencil_object(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::geometry::execute_realize_grease_pencil_tasks(), blender::ed::greasepencil::grease_pencil_merge_layer_exec(), blender::geometry::merge_layers(), blender::geometry::separate_grease_pencil_layer_selection(), blender::ed::greasepencil::tests::TEST(), blender::ed::greasepencil::tests::TEST(), and blender::ed::greasepencil::tests::TEST().
| bool BKE_grease_pencil_drawing_attribute_required | ( | const GreasePencilDrawing * | , |
| blender::StringRef | name ) |
Definition at line 2021 of file grease_pencil.cc.
References ATTR_POSITION, and name.
Referenced by BKE_attribute_required().
| void BKE_grease_pencil_duplicate_drawing_array | ( | const GreasePencil * | grease_pencil_src, |
| GreasePencil * | grease_pencil_dst ) |
Definition at line 2373 of file grease_pencil.cc.
References blender::bke::greasepencil::copy_drawing_array(), GreasePencil::drawing_array, GreasePencil::drawing_array_num, and MEM_calloc_arrayN().
Referenced by grease_pencil_copy_data().
| void BKE_grease_pencil_eval_geometry | ( | Depsgraph * | depsgraph, |
| GreasePencil * | grease_pencil ) |
Definition at line 2312 of file grease_pencil.cc.
References DEG_get_ctime(), depsgraph, grease_pencil_evaluate_layers(), and GreasePencil::runtime.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock().
| bool BKE_grease_pencil_has_curve_with_type | ( | const GreasePencil & | grease_pencil, |
| CurveType | type ) |
Definition at line 2393 of file grease_pencil.cc.
References GP_DRAWING, blender::bke::greasepencil::Drawing::strokes(), and wrap().
Referenced by blender::ed::object::data_xform_create_ex().
| void BKE_grease_pencil_material_index_remove | ( | GreasePencil * | grease_pencil, |
| int | index ) |
Definition at line 2741 of file grease_pencil.cc.
References blender::bke::CurvesGeometry::attributes_for_write(), BLI_assert, blender::bke::Curve, blender::bke::SpanAttributeWriter< T >::domain, blender::bke::SpanAttributeWriter< T >::finish(), GP_DRAWING, i, blender::bke::MutableAttributeAccessor::lookup_for_write_span(), blender::bke::SpanAttributeWriter< T >::span, blender::bke::greasepencil::Drawing::strokes_for_write(), and wrap().
Referenced by material_data_index_remove_id().
| bool BKE_grease_pencil_material_index_used | ( | GreasePencil * | grease_pencil, |
| int | index ) |
Definition at line 2767 of file grease_pencil.cc.
References blender::bke::CurvesGeometry::attributes(), blender::Span< T >::contains(), blender::bke::Curve, GP_DRAWING, blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::greasepencil::Drawing::strokes(), and wrap().
Referenced by BKE_object_material_slot_used().
| void BKE_grease_pencil_material_remap | ( | GreasePencil * | grease_pencil, |
| const uint * | remap, | ||
| int | totcol ) |
Definition at line 2716 of file grease_pencil.cc.
References blender::bke::CurvesGeometry::attributes_for_write(), BLI_assert, blender::bke::Curve, blender::bke::SpanAttributeWriter< T >::domain, blender::bke::SpanAttributeWriter< T >::finish(), GP_DRAWING, i, blender::bke::MutableAttributeAccessor::lookup_for_write_span(), blender::bke::SpanAttributeWriter< T >::span, blender::bke::greasepencil::Drawing::strokes_for_write(), UNUSED_VARS_NDEBUG, and wrap().
Referenced by BKE_object_material_remap().
| GreasePencil * BKE_grease_pencil_new_nomain | ( | ) |
Definition at line 2034 of file grease_pencil.cc.
References BKE_id_new_nomain().
Referenced by BKE_object_eval_grease_pencil(), blender::ed::object::convert_curves_to_grease_pencil(), blender::nodes::node_geo_curves_to_grease_pencil_cc::curve_instances_to_grease_pencil_layers(), blender::nodes::node_geo_curves_to_grease_pencil_cc::curves_to_grease_pencil_with_one_layer(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::geometry::execute_realize_grease_pencil_tasks(), blender::geometry::extract_greasepencil_layer_curves(), blender::geometry::extract_greasepencil_layer_points(), blender::geometry::extract_greasepencil_layers(), blender::ed::greasepencil::grease_pencil_merge_layer_exec(), blender::geometry::merge_layers(), blender::geometry::separate_grease_pencil_layer_selection(), blender::ed::greasepencil::tests::TEST(), blender::ed::greasepencil::tests::TEST(), blender::ed::greasepencil::tests::TEST(), blender::ed::greasepencil::tests::TEST(), blender::ed::greasepencil::tests::TEST(), and blender::bke::bake::try_load_grease_pencil().
| void BKE_grease_pencil_nomain_to_grease_pencil | ( | GreasePencil * | grease_pencil_src, |
| GreasePencil * | grease_pencil_dst ) |
Move data from a grease pencil outside of the main data-base into a grease pencil in the data-base. Takes ownership of the source grease pencil.
Definition at line 2095 of file grease_pencil.cc.
References GreasePencil::active_node, GreasePencil::attribute_storage, BKE_id_free(), BLI_assert, DEG_id_tag_update(), GreasePencil::drawing_array, GreasePencil::drawing_array_num, free_drawing_array(), GP_DRAWING, GP_DRAWING_REFERENCE, i, GreasePencil::id, ID_RECALC_GEOMETRY, GreasePencil::root_group_ptr, GreasePencilDrawingBase::type, and wrap().
Referenced by blender::ed::object::convert_curves_to_grease_pencil(), and blender::ed::greasepencil::grease_pencil_merge_layer_exec().
| Material * BKE_grease_pencil_object_material_alt_ensure_from_brush | ( | Main * | bmain, |
| Object * | ob, | ||
| Brush * | brush ) |
Definition at line 2699 of file grease_pencil.cc.
References blender::bke::asset_edit_id_find_local(), BKE_grease_pencil_object_material_ensure_from_brush(), BKE_object_material_slot_find_index(), and Material::id.
Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done().
| Material * BKE_grease_pencil_object_material_ensure_by_name | ( | Main * | bmain, |
| Object * | ob, | ||
| const char * | name, | ||
| int * | r_index ) |
Definition at line 2635 of file grease_pencil.cc.
References BKE_grease_pencil_object_material_index_get_by_name(), BKE_grease_pencil_object_material_new(), BKE_object_material_get(), and name.
Referenced by blender::ed::greasepencil::add_material_from_template(), and blender::ed::object::mesh_to_grease_pencil_add_material().
| Material * BKE_grease_pencil_object_material_ensure_from_brush | ( | Main * | bmain, |
| Object * | ob, | ||
| Brush * | brush ) |
Definition at line 2672 of file grease_pencil.cc.
References Object::actcol, BKE_material_default_gpencil(), BKE_object_material_get(), GP_BRUSH_MATERIAL_PINNED, and grease_pencil_object_material_ensure_from_brush_pinned().
Referenced by BKE_grease_pencil_object_material_alt_ensure_from_brush(), blender::ed::sculpt_paint::grease_pencil_fill_init(), blender::ed::greasepencil::grease_pencil_primitive_invoke(), and blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_begin().
Definition at line 2624 of file grease_pencil.cc.
References Object::actcol, BKE_object_material_get(), and GP_BRUSH_MATERIAL_PINNED.
Referenced by blender::ed::sculpt_paint::grease_pencil_brush_cursor_draw().
| int BKE_grease_pencil_object_material_index_get_by_name | ( | Object * | ob, |
| const char * | name ) |
Definition at line 2593 of file grease_pencil.cc.
References BKE_object_material_get(), BKE_object_material_len_p(), i, Material::id, ID::name, name, and STREQ.
Referenced by BKE_grease_pencil_object_material_ensure_by_name(), and blender::io::grease_pencil::GreasePencilImporter::create_material().
| Material * BKE_grease_pencil_object_material_new | ( | Main * | bmain, |
| Object * | ob, | ||
| const char * | name, | ||
| int * | r_index ) |
Definition at line 2607 of file grease_pencil.cc.
References Object::actcol, BKE_gpencil_material_add(), BKE_MAT_ASSIGN_USERPREF, BKE_object_material_assign(), BKE_object_material_slot_add(), Material::id, id_us_min(), name, and Object::totcol.
Referenced by blender::ed::object::add_grease_pencil_materials_for_conversion(), BKE_grease_pencil_object_material_ensure_by_name(), blender::ed::greasepencil::clipboard_materials_remap(), blender::io::grease_pencil::GreasePencilImporter::create_material(), and blender::ui::greasepencil::eyedropper_add_material().
| void BKE_grease_pencil_point_coords_apply | ( | GreasePencil & | grease_pencil, |
| blender::Span< blender::float3 > | all_positions, | ||
| blender::Span< float > | all_radii ) |
Definition at line 2484 of file grease_pencil.cc.
References CURVE_TYPE_BEZIER, GreasePencilFrame::drawing_index, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::foreach_item(), blender::bke::greasepencil::Layer::frames(), GP_DRAWING, i, blender::math::invert(), blender::bke::greasepencil::Layer::local_transform(), blender::bke::greasepencil::Drawing::radii_for_write(), blender::bke::greasepencil::Drawing::strokes_for_write(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::math::transform_point(), GreasePencilDrawingBase::type, and wrap().
Referenced by blender::ed::object::data_xform_restore().
| void BKE_grease_pencil_point_coords_apply_with_mat4 | ( | GreasePencil & | grease_pencil, |
| blender::Span< blender::float3 > | all_positions, | ||
| blender::Span< float > | all_radii, | ||
| const blender::float4x4 & | mat ) |
Definition at line 2534 of file grease_pencil.cc.
References CURVE_TYPE_BEZIER, GreasePencilFrame::drawing_index, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::foreach_item(), blender::bke::greasepencil::Layer::frames(), GP_DRAWING, i, blender::math::invert(), blender::bke::greasepencil::Layer::local_transform(), mat4_to_scale(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::bke::greasepencil::Drawing::radii_for_write(), blender::bke::greasepencil::Drawing::strokes_for_write(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::math::transform_point(), GreasePencilDrawingBase::type, and wrap().
Referenced by blender::ed::object::data_xform_by_mat4().
| void BKE_grease_pencil_point_coords_get | ( | const GreasePencil & | grease_pencil, |
| blender::MutableSpan< blender::float3 > | all_positions, | ||
| blender::MutableSpan< float > | all_radii ) |
Definition at line 2437 of file grease_pencil.cc.
References CURVE_TYPE_BEZIER, GreasePencilFrame::drawing_index, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::foreach_item(), blender::bke::greasepencil::Layer::frames(), GP_DRAWING, i, blender::bke::greasepencil::Layer::local_transform(), blender::bke::greasepencil::Drawing::radii(), blender::bke::greasepencil::Drawing::strokes(), blender::math::transform_point(), GreasePencilDrawingBase::type, and wrap().
Referenced by blender::ed::object::data_xform_create_ex().
| bool BKE_grease_pencil_references_cyclic_check | ( | const GreasePencil * | id_reference, |
| const GreasePencil * | grease_pencil ) |
Definition at line 2812 of file grease_pencil.cc.
References grease_pencil_references_cyclic_check_internal().
| int BKE_grease_pencil_stroke_point_count | ( | const GreasePencil & | grease_pencil | ) |
Definition at line 2412 of file grease_pencil.cc.
References GreasePencilFrame::drawing_index, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::foreach_item(), blender::bke::greasepencil::Layer::frames(), GP_DRAWING, blender::bke::greasepencil::Drawing::strokes(), GreasePencilDrawingBase::type, and wrap().
Referenced by blender::ed::object::data_xform_create_ex().
| void BKE_grease_pencil_vgroup_name_update | ( | Object * | ob, |
| const char * | old_name, | ||
| const char * | new_name ) |
Definition at line 2143 of file grease_pencil.cc.
References Object::data, LISTBASE_FOREACH, STREQ, STRNCPY_UTF8, Drawing::strokes_for_write(), and wrap().
Referenced by BKE_object_defgroup_set_name(), and ED_armature_bone_rename().
Definition at line 2321 of file grease_pencil.cc.
References BKE_grease_pencil_new_nomain(), BKE_object_eval_assign_data(), BKE_object_free_derived_caches(), blender::bke::AttributeAccessor::contains(), data, DEG_get_ctime(), DEG_get_original(), depsgraph, ELEM, GeometrySet::from_grease_pencil(), GeometrySet::get_component_for_write(), GeometrySet::get_grease_pencil(), GeometrySet::get_grease_pencil_for_write(), grease_pencil_do_layer_adjustments(), blender::bke::GeometryComponentEditData::grease_pencil_edit_hints_, grease_pencil_evaluate_modifiers(), GeometrySet::has_grease_pencil(), GreasePencil::id, OB_MODE_EDIT, OB_MODE_SCULPT_GREASE_PENCIL, OB_MODE_VERTEX_GREASE_PENCIL, OB_MODE_WEIGHT_GREASE_PENCIL, blender::bke::ReadOnly, GeometrySet::replace_grease_pencil(), and GreasePencil::runtime.
Referenced by BKE_object_handle_data_update().