|
Blender V4.3
|
#include <BKE_grease_pencil.hh>
Inherits GreasePencilLayer.
Public Types | |
| using | SortedKeysIterator = const int * |
Public Attributes | |
| TREENODE_COMMON_METHODS | |
Public Attributes inherited from GreasePencilLayer | |
| GreasePencilLayerTreeNode | base |
| GreasePencilLayerFramesMapStorage | frames_storage |
| int8_t | blend_mode |
| char | _pad [3] |
| float | opacity |
| ListBase | masks |
| int | active_mask_index |
| char | _pad2 [4] |
| struct Object * | parent |
| char * | parsubstr |
| float | parentinv [4][4] |
| float | translation [3] |
| float | rotation [3] |
| float | scale [3] |
| char | _pad3 [4] |
| char * | viewlayername |
| GreasePencilLayerRuntimeHandle * | runtime |
A layer maps drawings to scene frames. It can be thought of as one independent channel in the timeline.
Definition at line 437 of file BKE_grease_pencil.hh.
| using blender::bke::greasepencil::Layer::SortedKeysIterator = const int * |
Definition at line 439 of file BKE_grease_pencil.hh.
| blender::bke::greasepencil::Layer::Layer | ( | ) |
Definition at line 1055 of file grease_pencil.cc.
References GreasePencilLayer::active_mask_index, GreasePencilLayer::base, GreasePencilLayer::blend_mode, BLI_listbase_clear(), copy_v3_fl(), GreasePencilLayerFramesMapStorage::flag, GreasePencilLayer::frames_storage, GP_LAYER_BLEND_NONE, GP_LAYER_TREE_LEAF, GreasePencilLayerFramesMapStorage::keys, GreasePencilLayerFramesMapStorage::num, GreasePencilLayer::opacity, GreasePencilLayer::parent, GreasePencilLayer::parentinv, GreasePencilLayer::parsubstr, GreasePencilLayer::runtime, GreasePencilLayer::translation, unit_m4(), GreasePencilLayerFramesMapStorage::values, GreasePencilLayer::viewlayername, and zero_v3().
|
explicit |
Definition at line 1083 of file grease_pencil.cc.
References GreasePencilLayer::base, and GP_LAYER_TREE_LEAF.
| blender::bke::greasepencil::Layer::Layer | ( | const Layer & | other | ) |
Definition at line 1088 of file grease_pencil.cc.
References GreasePencilLayer::active_mask_index, GreasePencilLayer::base, GreasePencilLayer::blend_mode, BLI_addtail(), copy_m4_m4(), copy_v3_v3(), LISTBASE_FOREACH, GreasePencilLayer::opacity, GreasePencilLayer::parent, GreasePencilLayer::parentinv, GreasePencilLayer::parsubstr, GreasePencilLayer::runtime, set_parent_bone_name(), set_view_layer_name(), tag_frames_map_changed(), GreasePencilLayer::translation, and GreasePencilLayer::viewlayername.
| blender::bke::greasepencil::Layer::~Layer | ( | ) |
Definition at line 1120 of file grease_pencil.cc.
References GreasePencilLayer::base, BLI_listbase_clear(), GreasePencilLayer::frames_storage, GreasePencilLayerFramesMapStorage::keys, LISTBASE_FOREACH_MUTABLE, MEM_SAFE_FREE, GreasePencilLayer::parsubstr, GreasePencilLayer::runtime, GreasePencilLayerFramesMapStorage::values, and GreasePencilLayer::viewlayername.
| GreasePencilFrame * blender::bke::greasepencil::Layer::add_frame | ( | FramesMapKeyT | key, |
| int | duration = 0 ) |
Adds a new frame into the layer frames map. Fails if there already exists a frame at key that is not an end-frame. End-frame at key and subsequent end-frames are removed.
If duration is 0, the frame is marked as an implicit hold (see GP_FRAME_IMPLICIT_HOLD). Otherwise adds an additional end-frame at key + duration, if necessary, to indicate the end of the added frame.
Definition at line 1179 of file grease_pencil.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BLI_assert, GreasePencilFrame::flag, frames_for_write(), GP_FRAME_IMPLICIT_HOLD, sorted_keys(), and tag_frames_map_keys_changed().
Referenced by blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), and blender::bke::greasepencil::tests::TEST().
|
inline |
Definition at line 864 of file BKE_grease_pencil.hh.
|
inline |
TreeNode. Definition at line 860 of file BKE_grease_pencil.hh.
Referenced by blender::ed::object::apply_eval_grease_pencil_data(), BKE_grease_pencil_copy_layer_parameters(), blender::ui::greasepencil::LayerViewItem::create_drop_target(), blender::ed::greasepencil::grease_pencil_layer_duplicate_exec(), blender::ed::greasepencil::grease_pencil_layer_reorder_exec(), blender::ed::greasepencil::grease_pencil_merge_layer_exec(), blender::bke::greasepencil::LayerGroup::LayerGroup(), parent_group(), and parent_group().
Definition at line 1352 of file grease_pencil.cc.
References GreasePencilFrame::drawing_index, and frame_at().
Referenced by blender::ed::greasepencil::merge_layers(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), and blender::bke::greasepencil::tests::TEST().
| GreasePencilFrame * blender::bke::greasepencil::Layer::frame_at | ( | const int | frame_number | ) |
Definition at line 1332 of file grease_pencil.cc.
References frames_for_write(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr().
| const GreasePencilFrame * blender::bke::greasepencil::Layer::frame_at | ( | const int | frame_number | ) | const |
Definition at line 1312 of file grease_pencil.cc.
References frames(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr().
Referenced by drawing_index_at(), blender::ed::greasepencil::duplicate_layer_and_frames(), has_drawing_at(), and blender::bke::greasepencil::convert::legacy_gpencil_to_grease_pencil().
| const Map< int, GreasePencilFrame > & blender::bke::greasepencil::Layer::frames | ( | ) | const |
Definition at line 1139 of file grease_pencil.cc.
References GreasePencilLayer::runtime.
Referenced by blender::ed::greasepencil::copy_layer(), blender::ed::greasepencil::duplicate_layer_and_frames(), blender::ed::sculpt_paint::ensure_editable_drawings(), frame_at(), get_frame_duration_at(), blender::ed::greasepencil::grease_pencil_layer_duplicate_exec(), is_empty(), blender::ed::greasepencil::merge_layers(), prepare_for_dna_write(), remove_frame(), sorted_keys(), start_frame_at(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), and blender::bke::greasepencil::tests::TEST().
| Map< int, GreasePencilFrame > & blender::bke::greasepencil::Layer::frames_for_write | ( | ) |
Definition at line 1144 of file grease_pencil.cc.
References GreasePencilLayer::runtime.
Referenced by add_frame(), blender::ed::greasepencil::copy_layer(), blender::ed::greasepencil::duplicate_layer_and_frames(), frame_at(), blender::ed::greasepencil::grease_pencil_layer_duplicate_exec(), blender::ed::greasepencil::merge_layers(), remove_frame(), blender::bke::greasepencil::tests::TEST(), and update_from_dna_read().
Definition at line 1363 of file grease_pencil.cc.
References blender::math::distance(), frames(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and sorted_keys_iterator_at().
Referenced by blender::ed::greasepencil::duplicate_layer_and_frames(), blender::ed::greasepencil::grease_pencil_layer_duplicate_exec(), blender::ed::greasepencil::merge_layers(), and blender::bke::greasepencil::tests::TEST().
| bool blender::bke::greasepencil::Layer::has_drawing_at | ( | const int | frame_number | ) | const |
Definition at line 1358 of file grease_pencil.cc.
References frame_at().
Referenced by blender::ed::greasepencil::grease_pencil_move_to_layer_exec().
|
inline |
Definition at line 870 of file BKE_grease_pencil.hh.
References frames(), and is_empty().
Referenced by is_empty().
| float4x4 blender::bke::greasepencil::Layer::local_transform | ( | ) | const |
The local transform of the layer (in layer space, not object space).
Definition at line 1486 of file grease_pencil.cc.
References blender::math::from_loc_rot_scale(), and GreasePencilLayer::translation.
Referenced by blender::ed::object::apply_eval_grease_pencil_data(), blender::geometry::execute_realize_grease_pencil_task(), blender::ed::greasepencil::merge_layers(), blender::geometry::merge_layers(), to_object_space(), and to_world_space().
| StringRefNull blender::bke::greasepencil::Layer::parent_bone_name | ( | ) | const |
Returns the name of the parent bone. Should only be used in case the parent object is an armature.
Definition at line 1455 of file grease_pencil.cc.
References GreasePencilLayer::parsubstr.
|
inline |
Definition at line 878 of file BKE_grease_pencil.hh.
References as_node(), and blender::bke::greasepencil::TreeNode::parent_group().
|
inline |
Definition at line 874 of file BKE_grease_pencil.hh.
References as_node(), and blender::bke::greasepencil::TreeNode::parent_group().
| float4x4 blender::bke::greasepencil::Layer::parent_inverse | ( | ) | const |
Definition at line 1481 of file grease_pencil.cc.
References GreasePencilLayer::parentinv.
Referenced by to_object_space(), and to_world_space().
| void blender::bke::greasepencil::Layer::prepare_for_dna_write | ( | ) |
Prepare the DNA GreasePencilLayer data before blend-file writing.
Definition at line 1395 of file grease_pencil.cc.
References GreasePencilLayerFramesMapStorage::flag, frames(), GreasePencilLayer::frames_storage, GP_LAYER_FRAMES_STORAGE_DIRTY, blender::Span< T >::index_range(), int, GreasePencilLayerFramesMapStorage::keys, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), MEM_SAFE_FREE, GreasePencilLayerFramesMapStorage::num, size(), sorted_keys(), and GreasePencilLayerFramesMapStorage::values.
Referenced by blender::bke::greasepencil::tests::TEST(), blender::bke::greasepencil::tests::TEST(), and blender::bke::greasepencil::tests::TEST().
| bool blender::bke::greasepencil::Layer::remove_frame | ( | FramesMapKeyT | key | ) |
Removes a frame with key from the frames map.
Fails if the map does not contain a frame with key or in the specific case where the previous frame has a fixed duration (is not marked as an implicit hold) and the frame to remove is an end frame.
Will remove end frame(s) after the frame to remove.
Definition at line 1209 of file grease_pencil.cc.
References frames(), frames_for_write(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_contained(), size(), sorted_keys(), tag_frames_map_changed(), and tag_frames_map_keys_changed().
| void blender::bke::greasepencil::Layer::set_local_transform | ( | const float4x4 & | transform | ) |
Updates the local transform of the layer based on the matrix.
Definition at line 1492 of file grease_pencil.cc.
References blender::math::to_loc_rot_scale_safe(), and GreasePencilLayer::translation.
Referenced by blender::ed::object::apply_eval_grease_pencil_data(), blender::geometry::execute_realize_grease_pencil_task(), and blender::geometry::merge_layers().
| void blender::bke::greasepencil::Layer::set_parent_bone_name | ( | const char * | new_name | ) |
Definition at line 1460 of file grease_pencil.cc.
References BLI_strdup_null(), MEM_freeN(), and GreasePencilLayer::parsubstr.
Referenced by BKE_grease_pencil_copy_layer_parameters(), Layer(), and blender::bke::greasepencil::convert::legacy_gpencil_to_grease_pencil().
| void blender::bke::greasepencil::Layer::set_view_layer_name | ( | const char * | new_name | ) |
Definition at line 1505 of file grease_pencil.cc.
References BLI_strdup_null(), MEM_freeN(), and GreasePencilLayer::viewlayername.
Referenced by BKE_grease_pencil_copy_layer_parameters(), Layer(), and blender::bke::greasepencil::convert::legacy_gpencil_to_grease_pencil().
| Span< FramesMapKeyT > blender::bke::greasepencil::Layer::sorted_keys | ( | ) | const |
Returns the sorted keys (start frame numbers) of the frames of this layer.
Definition at line 1248 of file grease_pencil.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), blender::Span< T >::data(), blender::Vector< T, InlineBufferCapacity, Allocator >::end(), frames(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), blender::Vector< T, InlineBufferCapacity, Allocator >::reinitialize(), GreasePencilLayer::runtime, and size().
Referenced by add_frame(), blender::ed::greasepencil::merge_layers(), prepare_for_dna_write(), remove_frame(), sorted_keys_index_at(), sorted_keys_iterator_at(), and blender::bke::greasepencil::tests::TEST().
sorted_keys or -1 if no such frame exists. Definition at line 1303 of file grease_pencil.cc.
References sorted_keys(), and sorted_keys_iterator_at().
| Layer::SortedKeysIterator blender::bke::greasepencil::Layer::sorted_keys_iterator_at | ( | int | frame_number | ) | const |
sorted_keys span to the frame at frame_number or nullptr if no such frame exists. Definition at line 1261 of file grease_pencil.cc.
References blender::Span< T >::is_empty(), and sorted_keys().
Referenced by get_frame_duration_at(), and sorted_keys_index_at().
Definition at line 1293 of file grease_pencil.cc.
References frames().
Referenced by blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::ed::sculpt_paint::ensure_editable_drawings(), blender::ed::greasepencil::grease_pencil_active_frame_delete_exec(), and blender::ed::greasepencil::grease_pencil_frame_duplicate_exec().
| void blender::bke::greasepencil::Layer::tag_frames_map_changed | ( | ) |
Definition at line 1384 of file grease_pencil.cc.
References GreasePencilLayerFramesMapStorage::flag, GreasePencilLayer::frames_storage, and GP_LAYER_FRAMES_STORAGE_DIRTY.
Referenced by blender::ed::greasepencil::copy_layer(), Layer(), blender::ed::greasepencil::merge_layers(), remove_frame(), and tag_frames_map_keys_changed().
| void blender::bke::greasepencil::Layer::tag_frames_map_keys_changed | ( | ) |
Should be called whenever the keys in the frames map have changed. E.g. when new keys were added, removed or updated.
Definition at line 1389 of file grease_pencil.cc.
References GreasePencilLayer::runtime, and tag_frames_map_changed().
Referenced by add_frame(), and remove_frame().
Returns the transformation from layer space to object space.
Definition at line 1445 of file grease_pencil.cc.
References local_transform(), GreasePencilLayer::parent, and parent_inverse().
Referenced by blender::ed::greasepencil::grease_pencil_paste_strokes_exec().
Returns the transformation from layer space to world space.
Definition at line 1436 of file grease_pencil.cc.
References local_transform(), GreasePencilLayer::parent, and parent_inverse().
Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done().
| void blender::bke::greasepencil::Layer::update_from_dna_read | ( | ) |
Update from DNA GreasePencilLayer data after blend-file reading.
Definition at line 1419 of file grease_pencil.cc.
References frames_for_write(), GreasePencilLayer::frames_storage, GreasePencilLayerFramesMapStorage::keys, GreasePencilLayerFramesMapStorage::num, GreasePencilLayer::runtime, and GreasePencilLayerFramesMapStorage::values.
| StringRefNull blender::bke::greasepencil::Layer::view_layer_name | ( | ) | const |
Returns the view layer name that this layer should be rendered in or an empty StringRefNull if no such name is set.
Definition at line 1500 of file grease_pencil.cc.
References GreasePencilLayer::viewlayername.
| blender::bke::greasepencil::Layer::TREENODE_COMMON_METHODS |
Definition at line 447 of file BKE_grease_pencil.hh.