Blender V5.0
blender::bke::greasepencil::Layer Class Reference

#include <BKE_grease_pencil.hh>

Inherits GreasePencilLayer.

Public Types

using SortedKeysIterator = const int *

Public Member Functions

 Layer ()
 Layer (StringRef name)
 Layer (const Layer &other)
 ~Layer ()
const TreeNodeas_node () const
TreeNodeas_node ()
const LayerGroupparent_group () const
LayerGroupparent_group ()
const Map< FramesMapKeyT, GreasePencilFrame > & frames () const
Map< FramesMapKeyT, GreasePencilFrame > & frames_for_write ()
bool is_empty () const
GreasePencilFrameadd_frame (FramesMapKeyT key, int duration=0)
bool remove_frame (FramesMapKeyT key)
Span< FramesMapKeyTsorted_keys () const
int drawing_index_at (const int frame_number) const
bool has_drawing_at (const int frame_number) const
std::optional< int > start_frame_at (int frame_number) const
int sorted_keys_index_at (int frame_number) const
SortedKeysIterator sorted_keys_iterator_at (int frame_number) const
const GreasePencilFrameframe_at (const int frame_number) const
GreasePencilFrameframe_at (const int frame_number)
int get_frame_duration_at (const int frame_number) const
void tag_frames_map_changed ()
void tag_frames_map_keys_changed ()
void prepare_for_dna_write ()
void update_from_dna_read ()
float4x4 parent_inverse () const
float4x4 local_transform () const
void set_local_transform (const float4x4 &transform)
float4x4 to_object_space (const Object &object) const
float4x4 to_world_space (const Object &object) const
StringRefNull parent_bone_name () const
void set_parent_bone_name (StringRef new_name)
StringRefNull view_layer_name () const
void set_view_layer_name (StringRef new_name)

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 Objectparent
char * parsubstr
float parentinv [4][4]
float translation [3]
float rotation [3]
float scale [3]
char _pad3 [4]
char * viewlayername
GreasePencilLayerRuntimeHandleruntime

Detailed Description

A layer maps drawings to scene frames. It can be thought of as one independent channel in the timeline.

Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 456 of file BKE_grease_pencil.hh.

Member Typedef Documentation

◆ SortedKeysIterator

Constructor & Destructor Documentation

◆ Layer() [1/3]

◆ Layer() [2/3]

blender::bke::greasepencil::Layer::Layer ( StringRef name)
explicit

Definition at line 1179 of file grease_pencil.cc.

References GreasePencilLayer::base, GP_LAYER_TREE_LEAF, Layer(), and name.

◆ Layer() [3/3]

◆ ~Layer()

Member Function Documentation

◆ add_frame()

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.

Returns
a pointer to the added frame on success, otherwise nullptr.
Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1275 of file grease_pencil.cc.

References 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::ed::transform::grease_pencil_layer_update_trans_data(), 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(), blender::bke::greasepencil::tests::TEST(), and blender::bke::greasepencil::tests::TEST().

◆ as_node() [1/2]

TreeNode & blender::bke::greasepencil::Layer::as_node ( )
inline

Definition at line 893 of file BKE_grease_pencil.hh.

◆ as_node() [2/2]

◆ drawing_index_at()

int blender::bke::greasepencil::Layer::drawing_index_at ( const int frame_number) const

◆ frame_at() [1/2]

GreasePencilFrame * blender::bke::greasepencil::Layer::frame_at ( const int frame_number)

◆ frame_at() [2/2]

◆ frames()

const Map< int, GreasePencilFrame > & blender::bke::greasepencil::Layer::frames ( ) const
Returns
the frames mapping.
Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1235 of file grease_pencil.cc.

References GreasePencilLayer::runtime.

Referenced by blender::ed::object::apply_grease_pencil_for_modifier_all_keyframes(), blender::ed::object::apply_objects_internal(), BKE_grease_pencil_point_coords_apply(), BKE_grease_pencil_point_coords_apply_with_mat4(), BKE_grease_pencil_point_coords_get(), BKE_grease_pencil_stroke_point_count(), blender::ed::greasepencil::copy_layer(), blender::ed::transform::count_grease_pencil_frames(), blender::ed::greasepencil::create_keyframe_edit_data_selected_frames_list(), blender::ed::transform::createTransActionData(), blender::ed::sculpt_paint::ensure_editable_drawings(), frame_at(), blender::ed::greasepencil::get_editable_frames_for_layer(), get_frame_duration_at(), get_keyframe_extents(), blender::ed::greasepencil::get_selected_frame_number_bounds(), blender::ed::greasepencil::get_visible_frames_for_layer(), grease_pencil_cels_to_keylist(), blender::ed::greasepencil::grease_pencil_copy_keyframes(), blender::ed::transform::grease_pencil_layer_initialize_trans_data(), blender::ed::greasepencil::grease_pencil_paste_keyframes(), blender::ed::greasepencil::grease_pencil_remove_fill_guides_exec(), blender::ed::transform::GreasePencilLayerToTransData(), blender::ed::greasepencil::has_any_frame_selected(), is_empty(), blender::ed::greasepencil::merge_layers(), blender::ed::greasepencil::mirror_selected_frames(), blender::modify_geometry_set(), blender::ed::object::object_origin_set_exec(), prepare_for_dna_write(), blender::ed::greasepencil::remove_all_selected_frames(), remove_frame(), blender::ed::greasepencil::retrieve_editable_drawings_grouped_per_frame(), blender::ed::greasepencil::snap_selected_frames(), 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(), 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::ed::greasepencil::tests::TEST(), and update_from_dna_read().

◆ frames_for_write()

◆ get_frame_duration_at()

int blender::bke::greasepencil::Layer::get_frame_duration_at ( const int frame_number) const

◆ has_drawing_at()

bool blender::bke::greasepencil::Layer::has_drawing_at ( const int frame_number) const

◆ is_empty()

bool blender::bke::greasepencil::Layer::is_empty ( ) const
inline

◆ local_transform()

◆ parent_bone_name()

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.

Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1551 of file grease_pencil.cc.

References GreasePencilLayer::parsubstr.

◆ parent_group() [1/2]

LayerGroup & blender::bke::greasepencil::Layer::parent_group ( )
inline

◆ parent_group() [2/2]

const LayerGroup & blender::bke::greasepencil::Layer::parent_group ( ) const
inline

◆ parent_inverse()

float4x4 blender::bke::greasepencil::Layer::parent_inverse ( ) const

◆ prepare_for_dna_write()

◆ remove_frame()

◆ set_local_transform()

◆ set_parent_bone_name()

◆ set_view_layer_name()

◆ sorted_keys()

◆ sorted_keys_index_at()

int blender::bke::greasepencil::Layer::sorted_keys_index_at ( int frame_number) const
Returns
the index of the key of the active frame in sorted_keys or -1 if no such frame exists.
Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1399 of file grease_pencil.cc.

References begin(), sorted_keys(), and sorted_keys_iterator_at().

Referenced by blender::ed::greasepencil::get_visible_frames_for_layer(), and blender::modify_geometry_set().

◆ sorted_keys_iterator_at()

Layer::SortedKeysIterator blender::bke::greasepencil::Layer::sorted_keys_iterator_at ( int frame_number) const
Returns
an iterator into the sorted_keys span to the frame at frame_number or nullptr if no such frame exists.
Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1357 of file grease_pencil.cc.

References blender::Span< T >::is_empty(), and sorted_keys().

Referenced by blender::ed::sculpt_paint::greasepencil::find_frames_interval(), get_frame_duration_at(), and sorted_keys_index_at().

◆ start_frame_at()

◆ tag_frames_map_changed()

◆ tag_frames_map_keys_changed()

void blender::bke::greasepencil::Layer::tag_frames_map_keys_changed ( )

◆ to_object_space()

◆ to_world_space()

float4x4 blender::bke::greasepencil::Layer::to_world_space ( const Object & object) const

Returns the transformation from layer space to world space.

Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1532 of file grease_pencil.cc.

References local_transform(), GreasePencilLayer::parent, and parent_inverse().

Referenced by blender::ed::greasepencil::add_armature_automatic_weights(), blender::ed::greasepencil::add_armature_envelope_weights(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), do_grease_pencil_box_select(), do_lasso_select_grease_pencil(), blender::ed::greasepencil::DrawingPlacement::DrawingPlacement(), blender::ed::greasepencil::DrawingPlacement::DrawingPlacement(), ed_grease_pencil_select_pick(), ED_view3d_minmax_verts(), blender::io::grease_pencil::PDFExporter::export_grease_pencil_layer(), blender::io::grease_pencil::SVGExporter::export_grease_pencil_layer(), blender::io::grease_pencil::GreasePencilExporter::foreach_stroke_in_layer(), blender::ed::greasepencil::get_boundary_bounds(), blender::ed::sculpt_paint::greasepencil::get_screen_projection_fn(), grease_pencil_circle_select(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::greasepencil::grease_pencil_outline_exec(), blender::ed::greasepencil::grease_pencil_primitive_exit(), blender::ed::greasepencil::grease_pencil_reproject_exec(), blender::ed::greasepencil::grease_pencil_snap_compute_centroid(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::ed::greasepencil::grease_pencil_snap_to_grid_exec(), blender::ed::greasepencil::grease_pencil_texture_gradient_exec(), blender::ed::greasepencil::GreasePencilPenToolOperation::initialize(), blender::ed::greasepencil::join_object_with_active(), blender::modify_geometry_set(), blender::ed::sculpt_paint::greasepencil::TintOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::greasepencil::render_strokes(), blender::ed::greasepencil::stroke_trim_execute(), and blender::ed::greasepencil::weight_sample_invoke().

◆ update_from_dna_read()

void blender::bke::greasepencil::Layer::update_from_dna_read ( )

◆ view_layer_name()

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.

Examples
/usr/src/RPM/BUILD/blender5.0-5.0.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1599 of file grease_pencil.cc.

References GreasePencilLayer::viewlayername.

Referenced by blender::draw::gpencil::grease_pencil_layer_cache_add().

Member Data Documentation

◆ TREENODE_COMMON_METHODS

blender::bke::greasepencil::Layer::TREENODE_COMMON_METHODS

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