Blender V4.3
MOD_grease_pencil_util.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "BLI_index_mask.hh"
12#include "BLI_vector.hh"
13
14#include "BKE_modifier.hh"
15
16struct bContext;
17struct GreasePencil;
19struct PointerRNA;
20struct uiLayout;
21namespace blender::bke {
22class CurvesGeometry;
23namespace greasepencil {
24class Drawing;
25}
26} // namespace blender::bke
27
29
30void init_influence_data(GreasePencilModifierInfluenceData *influence_data, bool has_custom_curve);
31void copy_influence_data(const GreasePencilModifierInfluenceData *influence_data_src,
32 GreasePencilModifierInfluenceData *influence_data_dst,
33 int flag);
36 Object *ob,
37 IDWalkFunc walk,
38 void *user_data);
40 const GreasePencilModifierInfluenceData *influence_data);
42 GreasePencilModifierInfluenceData *influence_data);
43
48
49IndexMask get_filtered_layer_mask(const GreasePencil &grease_pencil,
50 const GreasePencilModifierInfluenceData &influence_data,
51 IndexMaskMemory &memory);
52
53IndexMask get_filtered_stroke_mask(const Object *ob,
54 const bke::CurvesGeometry &curves,
55 const GreasePencilModifierInfluenceData &influence_data,
56 IndexMaskMemory &memory);
57
59 const bke::CurvesGeometry &curves, const GreasePencilModifierInfluenceData &influence_data);
60
61Vector<bke::greasepencil::Drawing *> get_drawings_for_write(GreasePencil &grease_pencil,
62 const IndexMask &layer_mask,
63 int frame);
64
67 /* Layer containing the drawing. */
69};
70
72 const IndexMask &layer_mask,
73 int frame);
74
77 /* Frame on which this drawing starts. */
79};
80
82 const IndexMask &layer_mask,
83 int frame);
84
86
87} // namespace blender::modifier::greasepencil
void(*)(void *user_data, Object *ob, ID **idpoin, int cb_flag) IDWalkFunc
void read_influence_data(BlendDataReader *reader, GreasePencilModifierInfluenceData *influence_data)
void init_influence_data(GreasePencilModifierInfluenceData *influence_data, const bool has_custom_curve)
Vector< LayerDrawingInfo > get_drawing_infos_by_layer(GreasePencil &grease_pencil, const IndexMask &layer_mask, const int frame)
Vector< FrameDrawingInfo > get_drawing_infos_by_frame(GreasePencil &grease_pencil, const IndexMask &layer_mask, const int frame)
static IndexMask get_filtered_layer_mask(const GreasePencil &grease_pencil, const std::optional< StringRef > layer_name_filter, const std::optional< int > layer_pass_filter, const bool layer_filter_invert, const bool layer_pass_filter_invert, IndexMaskMemory &memory)
static IndexMask get_filtered_stroke_mask(const Object *ob, const bke::CurvesGeometry &curves, const Material *material_filter, const std::optional< int > material_pass_filter, const bool material_filter_invert, const bool material_pass_filter_invert, IndexMaskMemory &memory)
void write_influence_data(BlendWriter *writer, const GreasePencilModifierInfluenceData *influence_data)
void draw_vertex_group_settings(const bContext *, uiLayout *layout, PointerRNA *ptr)
VArray< float > get_influence_vertex_weights(const bke::CurvesGeometry &curves, const GreasePencilModifierInfluenceData &influence_data)
Vector< bke::greasepencil::Drawing * > get_drawings_for_write(GreasePencil &grease_pencil, const IndexMask &layer_mask, const int frame)
void draw_material_filter_settings(const bContext *, uiLayout *layout, PointerRNA *ptr)
void draw_layer_filter_settings(const bContext *, uiLayout *layout, PointerRNA *ptr)
void draw_custom_curve_settings(const bContext *, uiLayout *layout, PointerRNA *ptr)
void free_influence_data(GreasePencilModifierInfluenceData *influence_data)
void foreach_influence_ID_link(GreasePencilModifierInfluenceData *influence_data, Object *ob, IDWalkFunc walk, void *user_data)
void copy_influence_data(const GreasePencilModifierInfluenceData *influence_data_src, GreasePencilModifierInfluenceData *influence_data_dst, const int)
void ensure_no_bezier_curves(Drawing &drawing)
PointerRNA * ptr
Definition wm_files.cc:4126
uint8_t flag
Definition wm_window.cc:138