Blender V4.3
blender::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 LayerGroup & parent_group () const
LayerGroup & parent_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.

Definition at line 437 of file BKE_grease_pencil.hh.

Member Typedef Documentation

◆ SortedKeysIterator

Constructor & Destructor Documentation

◆ Layer() [1/3]

blender::bke::greasepencil::Layer::Layer ( )

Definition at line 1055 of file grease_pencil.cc.

◆ Layer() [2/3]

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

Definition at line 1083 of file grease_pencil.cc.

◆ Layer() [3/3]

blender::bke::greasepencil::Layer::Layer ( const Layer & other)

Definition at line 1088 of file grease_pencil.cc.

◆ ~Layer()

blender::bke::greasepencil::Layer::~Layer ( )

Definition at line 1120 of file grease_pencil.cc.

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.

Definition at line 1179 of file grease_pencil.cc.

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

const TreeNode & blender::bke::greasepencil::Layer::as_node ( ) const
inline
Returns
the layer as a TreeNode.

Definition at line 860 of file BKE_grease_pencil.hh.

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

Definition at line 1352 of file grease_pencil.cc.

◆ frame_at() [1/2]

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

Definition at line 1332 of file grease_pencil.cc.

◆ frame_at() [2/2]

const GreasePencilFrame * blender::bke::greasepencil::Layer::frame_at ( const int frame_number) const
Returns
a pointer to the active frame at frame_number or nullptr if there is no frame.

Definition at line 1312 of file grease_pencil.cc.

◆ frames()

const Map< int, GreasePencilFrame > & blender::bke::greasepencil::Layer::frames ( ) const
Returns
the frames mapping.

Definition at line 1139 of file grease_pencil.cc.

◆ frames_for_write()

Map< int, GreasePencilFrame > & blender::bke::greasepencil::Layer::frames_for_write ( )

Definition at line 1144 of file grease_pencil.cc.

◆ get_frame_duration_at()

int blender::bke::greasepencil::Layer::get_frame_duration_at ( const int frame_number) const
Returns
the frame duration of the keyframe at frame_number. If there is no keyframe at frame_number
-1. If the keyframe is an implicit hold,
0.

Definition at line 1363 of file grease_pencil.cc.

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

Definition at line 1358 of file grease_pencil.cc.

◆ is_empty()

bool blender::bke::greasepencil::Layer::is_empty ( ) const
inline
Returns
true, if the layer contains no keyframes.

Definition at line 870 of file BKE_grease_pencil.hh.

◆ local_transform()

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.

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

Definition at line 1455 of file grease_pencil.cc.

◆ parent_group() [1/2]

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

Definition at line 878 of file BKE_grease_pencil.hh.

◆ parent_group() [2/2]

const LayerGroup & blender::bke::greasepencil::Layer::parent_group ( ) const
inline
Returns
the parent LayerGroup of this layer.

Definition at line 874 of file BKE_grease_pencil.hh.

◆ parent_inverse()

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

Definition at line 1481 of file grease_pencil.cc.

◆ prepare_for_dna_write()

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.

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

Definition at line 1209 of file grease_pencil.cc.

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

Definition at line 1492 of file grease_pencil.cc.

◆ set_parent_bone_name()

void blender::bke::greasepencil::Layer::set_parent_bone_name ( const char * new_name)

Definition at line 1460 of file grease_pencil.cc.

◆ set_view_layer_name()

void blender::bke::greasepencil::Layer::set_view_layer_name ( const char * new_name)

Definition at line 1505 of file grease_pencil.cc.

◆ sorted_keys()

Span< FramesMapKeyT > blender::bke::greasepencil::Layer::sorted_keys ( ) const

Returns the sorted keys (start frame numbers) of the frames of this layer.

Note
This will cache the keys lazily.

Definition at line 1248 of file grease_pencil.cc.

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

Definition at line 1303 of file grease_pencil.cc.

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

Definition at line 1261 of file grease_pencil.cc.

◆ start_frame_at()

std::optional< int > blender::bke::greasepencil::Layer::start_frame_at ( int frame_number) const
Returns
the start frame number of the active frame at frame_number or #std::nullopt if no such frame exists.

Definition at line 1293 of file grease_pencil.cc.

◆ tag_frames_map_changed()

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

Definition at line 1384 of file grease_pencil.cc.

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

◆ to_object_space()

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

Returns the transformation from layer space to object space.

Definition at line 1445 of file grease_pencil.cc.

◆ to_world_space()

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

Returns the transformation from layer space to world space.

Definition at line 1436 of file grease_pencil.cc.

◆ update_from_dna_read()

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.

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

Definition at line 1500 of file grease_pencil.cc.

Member Data Documentation

◆ TREENODE_COMMON_METHODS

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

Definition at line 447 of file BKE_grease_pencil.hh.


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