Blender V4.3
blender::bke::greasepencil::Layer Class Reference

#include <BKE_grease_pencil.hh>

Inherits GreasePencilLayer.

Public Types

using SortedKeysIterator = const int *
 

Public Member Functions

 Layer ()
 
 Layer (StringRefNull 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< intstart_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 (const char *new_name)
 
StringRefNull view_layer_name () const
 
void set_view_layer_name (const char *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/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 437 of file BKE_grease_pencil.hh.

Member Typedef Documentation

◆ SortedKeysIterator

Constructor & Destructor Documentation

◆ Layer() [1/3]

◆ Layer() [2/3]

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

Definition at line 1083 of file grease_pencil.cc.

References GreasePencilLayer::base, and GP_LAYER_TREE_LEAF.

◆ Layer() [3/3]

◆ ~Layer()

Member Function Documentation

◆ add_frame()

GreasePencilFrame * blender::bke::greasepencil::Layer::add_frame ( FramesMapKeyT key,
int duration = 0 )

◆ as_node() [1/2]

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

Definition at line 864 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
Returns
the index of the active drawing at frame frame_number or -1 if there is no drawing. TODO: This should be a private API!
Examples
/usr/src/RPM/BUILD/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

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().

◆ frame_at() [1/2]

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

◆ frame_at() [2/2]

◆ frames()

◆ 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
Returns
true if there is a drawing on this layer at frame_number.
Examples
/usr/src/RPM/BUILD/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1358 of file grease_pencil.cc.

References frame_at().

Referenced by blender::ed::greasepencil::grease_pencil_move_to_layer_exec().

◆ is_empty()

bool blender::bke::greasepencil::Layer::is_empty ( ) const
inline
Returns
true, if the layer contains no keyframes.
Examples
/usr/src/RPM/BUILD/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 870 of file BKE_grease_pencil.hh.

References frames(), and is_empty().

Referenced by is_empty().

◆ 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/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1455 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()

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.

Returns
true on success.
Examples
/usr/src/RPM/BUILD/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

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().

◆ set_local_transform()

void blender::bke::greasepencil::Layer::set_local_transform ( const float4x4 & transform)

Updates the local transform of the layer based on the matrix.

Note
The matrix is decomposed into location, rotation and scale, so any skew is lost.
Examples
/usr/src/RPM/BUILD/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

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().

◆ 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/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1303 of file grease_pencil.cc.

References sorted_keys(), and sorted_keys_iterator_at().

◆ 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/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

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().

◆ start_frame_at()

std::optional< int > blender::bke::greasepencil::Layer::start_frame_at ( int frame_number) const

◆ tag_frames_map_changed()

◆ 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.

Examples
/usr/src/RPM/BUILD/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1389 of file grease_pencil.cc.

References GreasePencilLayer::runtime, and tag_frames_map_changed().

Referenced by add_frame(), and remove_frame().

◆ to_object_space()

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

◆ to_world_space()

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

◆ 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/blender-4.3.0/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 1500 of file grease_pencil.cc.

References GreasePencilLayer::viewlayername.

Member Data Documentation

◆ TREENODE_COMMON_METHODS

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

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