Blender
V3.3
|
#include <stdio.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math_geom.h"
#include "BLI_math_vector.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_armature_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "BKE_colortools.h"
#include "BKE_deform.h"
#include "BKE_gpencil.h"
#include "BKE_gpencil_geom.h"
#include "BKE_gpencil_modifier.h"
#include "BKE_lattice.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_material.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_shrinkwrap.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "MOD_gpencil_lineart.h"
#include "MOD_gpencil_modifiertypes.h"
#include "BLO_read_write.h"
#include "CLG_log.h"
Go to the source code of this file.
Variables | |
static CLG_LogRef | LOG = {"bke.gpencil_modifier"} |
static GpencilModifierTypeInfo * | modifier_gpencil_types [NUM_GREASEPENCIL_MODIFIER_TYPES] = {NULL} |
Clear grease pencil cache deform data.
ob | Grease pencil object |
Definition at line 115 of file gpencil_modifier.c.
References BKE_lattice_deform_data_destroy(), BKE_shrinkwrap_free_tree(), LatticeGpencilModifierData::cache_data, ShrinkwrapGpencilModifierData::cache_data, eGpencilModifierType_Lattice, eGpencilModifierType_Shrinkwrap, Object::greasepencil_modifiers, LISTBASE_FOREACH, MEM_SAFE_FREE, and NULL.
Referenced by BKE_gpencil_modifiers_calc().
Init grease pencil cache deform data.
ob | Grease pencil object |
Definition at line 67 of file gpencil_modifier.c.
References BKE_lattice_deform_data_create(), BKE_lattice_deform_data_destroy(), BKE_modifier_get_evaluated_mesh_from_evaluated_object(), BKE_shrinkwrap_free_tree(), BKE_shrinkwrap_init_tree(), LatticeGpencilModifierData::cache_data, ShrinkwrapGpencilModifierData::cache_data, DEG_get_evaluated_object(), depsgraph, eGpencilModifierType_Lattice, eGpencilModifierType_Shrinkwrap, Object::greasepencil_modifiers, LISTBASE_FOREACH, MEM_callocN, MEM_SAFE_FREE, NULL, OB_LATTICE, LatticeGpencilModifierData::object, ShrinkwrapGpencilModifierData::shrink_mode, ShrinkwrapGpencilModifierData::shrink_type, ShrinkwrapGpencilModifierData::target, and Object::type.
Referenced by BKE_gpencil_modifiers_calc().
Set current grease pencil active frame.
depsgraph | Current depsgraph |
gpd | Grease pencil data-block. |
Definition at line 306 of file gpencil_modifier.c.
References BKE_gpencil_layer_frame_get(), DEG_debug_print_eval(), DEG_get_ctime(), DEG_get_original_id(), DEG_is_active(), depsgraph, GP_GETFRAME_USE_PREV, bGPdata::id, bGPdata::layers, LISTBASE_FOREACH, and ID::name.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock(), and generateStrokes().
bGPDframe* BKE_gpencil_frame_retime_get | ( | struct Depsgraph * | depsgraph, |
struct Scene * | scene, | ||
struct Object * | ob, | ||
struct bGPDlayer * | gpl | ||
) |
Get the current frame re-timed with time modifiers.
depsgraph | Current depsgraph. |
scene | Current scene. |
ob | Grease pencil object. |
gpl | Grease pencil layer. |
Definition at line 607 of file gpencil_modifier.c.
References BKE_gpencil_layer_frame_get(), depsgraph, GP_GETFRAME_USE_PREV, gpencil_remap_time_get(), and scene.
Referenced by BKE_gpencil_modifiers_calc(), generateStrokes(), and GPENCIL_cache_populate().
GpencilLineartLimitInfo BKE_gpencil_get_lineart_modifier_limits | ( | const Object * | ob | ) |
Definition at line 212 of file gpencil_modifier.c.
References GpencilLineartLimitInfo::edge_types, LineartGpencilModifierData::edge_types, eGpencilModifierType_Lineart, LineartGpencilModifierData::flags, Object::greasepencil_modifiers, LineartGpencilModifierData::level_end, LineartGpencilModifierData::level_start, LISTBASE_FOREACH, LRT_GPENCIL_USE_CACHE, MAX2, GpencilLineartLimitInfo::max_level, MIN2, GpencilLineartLimitInfo::min_level, GpencilLineartLimitInfo::shadow_selection, LineartGpencilModifierData::shadow_selection, GpencilLineartLimitInfo::silhouette_selection, LineartGpencilModifierData::silhouette_selection, and LineartGpencilModifierData::use_multiple_levels.
Referenced by BKE_gpencil_modifiers_calc().
Check if object has grease pencil Geometry modifiers.
ob | Grease pencil object. |
Definition at line 171 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), GpencilModifierTypeInfo::generateStrokes, Object::greasepencil_modifiers, and LISTBASE_FOREACH.
Check if object has grease pencil Time modifiers.
ob | Grease pencil object. |
Definition at line 183 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), Object::greasepencil_modifiers, LISTBASE_FOREACH, and GpencilModifierTypeInfo::remapTime.
Referenced by BKE_gpencil_modifiers_calc(), GPENCIL_cache_populate(), and gpencil_remap_time_get().
Check if object has grease pencil transform stroke modifiers.
ob | Grease pencil object. |
Definition at line 195 of file gpencil_modifier.c.
References eGpencilModifierType_Armature, eGpencilModifierType_Hook, eGpencilModifierType_Lattice, eGpencilModifierType_Offset, ELEM, GPENCIL_MODIFIER_ACTIVE, GPENCIL_MODIFIER_EDIT, Object::greasepencil_modifiers, and LISTBASE_FOREACH.
Referenced by gpencil_sculpt_brush_init().
bool BKE_gpencil_is_first_lineart_in_stack | ( | const Object * | ob, |
const GpencilModifierData * | md | ||
) |
Definition at line 255 of file gpencil_modifier.c.
References BLI_assert, eGpencilModifierType_Lineart, Object::greasepencil_modifiers, LISTBASE_FOREACH, and GpencilModifierData::type.
void BKE_gpencil_modifier_blend_read_data | ( | BlendDataReader * | reader, |
ListBase * | lb | ||
) |
Definition at line 909 of file gpencil_modifier.c.
References BKE_curvemapping_blend_read(), BKE_curvemapping_init(), BKE_gpencil_modifier_get_info(), BLO_read_data_address, BLO_read_list(), LatticeGpencilModifierData::cache_data, ShrinkwrapGpencilModifierData::cache_data, TintGpencilModifierData::colorband, HookGpencilModifierData::curfalloff, NoiseGpencilModifierData::curve_intensity, ColorGpencilModifierData::curve_intensity, OpacityGpencilModifierData::curve_intensity, SmoothGpencilModifierData::curve_intensity, TintGpencilModifierData::curve_intensity, ThickGpencilModifierData::curve_thickness, DashGpencilModifierSegment::dmd, eGpencilModifierType_Color, eGpencilModifierType_Dash, eGpencilModifierType_Hook, eGpencilModifierType_Lattice, eGpencilModifierType_Noise, eGpencilModifierType_Opacity, eGpencilModifierType_Shrinkwrap, eGpencilModifierType_Smooth, eGpencilModifierType_Thick, eGpencilModifierType_Tint, eModifierType_None, LISTBASE_FOREACH, NULL, DashGpencilModifierData::segments, and DashGpencilModifierData::segments_len.
Referenced by object_blend_read_data().
void BKE_gpencil_modifier_blend_read_lib | ( | BlendLibReader * | reader, |
Object * | ob | ||
) |
Definition at line 1000 of file gpencil_modifier.c.
References BKE_gpencil_modifiers_foreach_ID_link(), BKE_object_modifiers_lib_link_common(), eGpencilModifierFlag_OverrideLibrary_Local, Object::greasepencil_modifiers, ID_IS_LINKED, LISTBASE_FOREACH, and mod().
Referenced by object_blend_read_lib().
void BKE_gpencil_modifier_blend_write | ( | BlendWriter * | writer, |
ListBase * | modbase | ||
) |
Definition at line 839 of file gpencil_modifier.c.
References BKE_curvemapping_blend_write(), BKE_gpencil_modifier_get_info(), BLO_write_struct, BLO_write_struct_array, BLO_write_struct_by_name(), TintGpencilModifierData::colorband, HookGpencilModifierData::curfalloff, NoiseGpencilModifierData::curve_intensity, ColorGpencilModifierData::curve_intensity, OpacityGpencilModifierData::curve_intensity, SmoothGpencilModifierData::curve_intensity, TintGpencilModifierData::curve_intensity, ThickGpencilModifierData::curve_thickness, eGpencilModifierType_Color, eGpencilModifierType_Dash, eGpencilModifierType_Hook, eGpencilModifierType_Noise, eGpencilModifierType_Opacity, eGpencilModifierType_Smooth, eGpencilModifierType_Thick, eGpencilModifierType_Tint, LISTBASE_FOREACH, NULL, DashGpencilModifierData::segments, DashGpencilModifierData::segments_len, and GpencilModifierTypeInfo::struct_name.
Referenced by object_blend_write().
void BKE_gpencil_modifier_copydata | ( | struct GpencilModifierData * | md, |
struct GpencilModifierData * | target | ||
) |
Copy grease pencil modifier data.
md | Source modifier data. |
target | Target modifier data. |
Definition at line 507 of file gpencil_modifier.c.
References BKE_gpencil_modifier_copydata_ex().
Referenced by ED_object_gpencil_modifier_copy().
void BKE_gpencil_modifier_copydata_ex | ( | struct GpencilModifierData * | md, |
struct GpencilModifierData * | target, | ||
int | flag | ||
) |
Copy grease pencil modifier data.
md | Source modifier data. |
target | Target modifier data. |
flag | Flags. |
Definition at line 486 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), GpencilModifierTypeInfo::copyData, GpencilModifierData::flag, GpencilModifierTypeInfo::foreachIDLink, gpencil_modifier_copy_data_id_us_cb(), LIB_ID_CREATE_NO_USER_REFCOUNT, GpencilModifierData::mode, NULL, GpencilModifierData::type, and GpencilModifierData::ui_expand_flag.
Referenced by BKE_gpencil_modifier_copydata(), and BKE_object_modifier_stack_copy().
void BKE_gpencil_modifier_copydata_generic | ( | const GpencilModifierData * | md_src, |
GpencilModifierData * | md_dst | ||
) |
Definition at line 457 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), BLI_assert, GpencilModifierTypeInfo::freeData, GpencilModifierTypeInfo::struct_size, and GpencilModifierData::type.
bool BKE_gpencil_modifier_depends_ontime | ( | struct GpencilModifierData * | md | ) |
Check if grease pencil modifier depends on time.
md | Modifier data. |
Definition at line 426 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), GpencilModifierTypeInfo::dependsOnTime, and GpencilModifierData::type.
Referenced by blender::deg::DepsgraphRelationBuilder::build_object_data_geometry().
void BKE_gpencil_modifier_free | ( | struct GpencilModifierData * | md | ) |
Free grease pencil modifier data
md | Modifier data. |
Definition at line 407 of file gpencil_modifier.c.
References BKE_gpencil_modifier_free_ex().
Referenced by BKE_gpencil_modifier_init(), ED_object_gpencil_modifier_apply(), and gpencil_object_modifier_remove().
void BKE_gpencil_modifier_free_ex | ( | struct GpencilModifierData * | md, |
int | flag | ||
) |
Free grease pencil modifier data
md | Modifier data. |
flag | Flags. |
Definition at line 387 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), GpencilModifierData::error, GpencilModifierTypeInfo::foreachIDLink, GpencilModifierTypeInfo::freeData, LIB_ID_CREATE_NO_USER_REFCOUNT, MEM_freeN, modifier_free_data_id_us_cb(), NULL, and GpencilModifierData::type.
Referenced by BKE_gpencil_modifier_free(), and BKE_object_free_modifiers().
const GpencilModifierTypeInfo* BKE_gpencil_modifier_get_info | ( | GpencilModifierType | type | ) |
Get grease pencil modifier information.
type | Type of modifier. |
Definition at line 433 of file gpencil_modifier.c.
References modifier_gpencil_types, NULL, and type.
Referenced by BKE_gpencil_has_geometry_modifiers(), BKE_gpencil_has_time_modifiers(), BKE_gpencil_modifier_blend_read_data(), BKE_gpencil_modifier_blend_write(), BKE_gpencil_modifier_copydata_ex(), BKE_gpencil_modifier_copydata_generic(), BKE_gpencil_modifier_depends_ontime(), BKE_gpencil_modifier_free_ex(), BKE_gpencil_modifier_new(), BKE_gpencil_modifier_unique_name(), BKE_gpencil_modifiers_calc(), BKE_gpencil_modifiers_foreach_ID_link(), BKE_gpencil_modifiers_foreach_tex_link(), BKE_gpencil_modifierType_panel_id(), BKE_gpencil_time_modifier_cfra(), BKE_object_copy_gpencil_modifier(), blender::deg::DepsgraphRelationBuilder::build_object_data_geometry(), ED_gpencil_join_objects_exec(), ED_object_gpencil_modifier_add(), ED_object_gpencil_modifier_copy(), ED_spacetype_buttons(), gpencil_modifier_add_itemf(), gpencil_modifier_apply_obdata(), gpencil_modifier_ops_extra_draw(), gpencil_modifier_panel_header(), lineart_mod_is_disabled(), and uiTemplateGpencilModifiers().
Initialize modifier's global data (type info and some common global storage).
Definition at line 329 of file gpencil_modifier.c.
References VirtualModifierData::amd, BKE_gpencil_modifier_free(), BKE_gpencil_modifier_new(), eGpencilModifierMode_Virtual, eGpencilModifierType_Armature, eGpencilModifierType_Lattice, gpencil_modifier_type_init(), VirtualModifierData::lmd, ModifierData::mode, LatticeModifierData::modifier, ArmatureModifierData::modifier, modifier_gpencil_types, and virtualModifierCommonData.
Referenced by main().
bool BKE_gpencil_modifier_is_nonlocal_in_liboverride | ( | const Object * | ob, |
const GpencilModifierData * | gmd | ||
) |
Definition at line 545 of file gpencil_modifier.c.
References eGpencilModifierFlag_OverrideLibrary_Local, GpencilModifierData::flag, ID_IS_OVERRIDE_LIBRARY, and NULL.
GpencilModifierData* BKE_gpencil_modifier_new | ( | int | type | ) |
Create new grease pencil modifier.
type | Type of modifier. |
Definition at line 352 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), BLI_strncpy(), DATA_, eGpencilModifierFlag_OverrideLibrary_Local, eGpencilModifierMode_Editmode, eGpencilModifierMode_Realtime, eGpencilModifierMode_Render, eGpencilModifierTypeFlag_EnableInEditmode, GpencilModifierData::flag, GpencilModifierTypeInfo::flags, GpencilModifierTypeInfo::initData, MEM_callocN, GpencilModifierData::mode, GpencilModifierTypeInfo::name, GpencilModifierData::name, GpencilModifierTypeInfo::struct_name, GpencilModifierTypeInfo::struct_size, type, GpencilModifierData::type, and GpencilModifierData::ui_expand_flag.
Referenced by BKE_gpencil_modifier_init(), BKE_object_copy_gpencil_modifier(), BKE_object_modifier_stack_copy(), ED_object_gpencil_modifier_add(), ED_object_gpencil_modifier_copy(), and object_gpencil_add_exec().
void BKE_gpencil_modifier_panel_expand | ( | GpencilModifierData * | md | ) |
Definition at line 452 of file gpencil_modifier.c.
References GpencilModifierData::ui_expand_flag, and UI_PANEL_DATA_EXPAND_ROOT.
Referenced by outliner_set_properties_tab().
void BKE_gpencil_modifier_set_error | ( | GpencilModifierData * | md, |
const char * | format, | ||
... | |||
) |
Definition at line 525 of file gpencil_modifier.c.
References BLI_strdup(), buffer, CLOG_STR_ERROR, GpencilModifierData::error, LOG, MEM_freeN, and TIP_.
bool BKE_gpencil_modifier_unique_name | ( | ListBase * | modifiers, |
GpencilModifierData * | gmd | ||
) |
Definition at line 412 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), BLI_uniquename(), DATA_, GpencilModifierTypeInfo::name, GpencilModifierData::name, and GpencilModifierData::type.
Referenced by BKE_object_copy_gpencil_modifier(), ED_object_gpencil_modifier_add(), ED_object_gpencil_modifier_copy(), and object_gpencil_add_exec().
void BKE_gpencil_modifiers_calc | ( | struct Depsgraph * | depsgraph, |
struct Scene * | scene, | ||
struct Object * | ob | ||
) |
Calculate grease-pencil modifiers.
depsgraph | Current depsgraph. |
scene | Current scene. |
ob | Grease pencil object. |
Definition at line 775 of file gpencil_modifier.c.
References BKE_gpencil_cache_data_clear(), BKE_gpencil_cache_data_init(), BKE_gpencil_frame_retime_get(), BKE_gpencil_get_lineart_modifier_limits(), BKE_gpencil_has_time_modifiers(), BKE_gpencil_modifier_get_info(), BKE_gpencil_set_lineart_modifier_limits(), bool, DAG_EVAL_RENDER, Object::data, GpencilModifierTypeInfo::deformStroke, DEG_get_mode(), depsgraph, eGpencilModifierType_Lineart, ListBase::first, GpencilModifierTypeInfo::generateStrokes, GPENCIL_ANY_EDIT_MODE, GPENCIL_CURVE_EDIT_SESSIONS_ON, GPENCIL_MODIFIER_ACTIVE, GPENCIL_MODIFIER_EDIT, GPENCIL_MULTIEDIT_SESSIONS_ON, GPENCIL_SIMPLIFY_MODIF, Object::greasepencil_modifiers, bGPdata::layers, bGPdata_Runtime::lineart_cache, LISTBASE_FOREACH, MOD_lineart_clear_cache(), NULL, bGPdata::runtime, scene, and bGPDframe::strokes.
Referenced by BKE_object_handle_data_update(), and object_force_modifier_update_for_bind().
GpencilModifierData* BKE_gpencil_modifiers_findby_name | ( | struct Object * | ob, |
const char * | name | ||
) |
Find grease pencil modifier by name.
ob | Grease pencil object. |
name | Name to find. |
Definition at line 580 of file gpencil_modifier.c.
References BLI_findstring(), and Object::greasepencil_modifiers.
Referenced by gpencil_edit_modifier_property_get().
GpencilModifierData* BKE_gpencil_modifiers_findby_type | ( | Object * | ob, |
GpencilModifierType | type | ||
) |
Definition at line 512 of file gpencil_modifier.c.
References ListBase::first, Object::greasepencil_modifiers, GpencilModifierData::next, type, and GpencilModifierData::type.
Referenced by ED_gpencil_add_armature(), ED_gpencil_add_lattice_modifier(), ED_object_gpencil_modifier_add(), ED_object_gpencil_modifier_copy(), gpencil_generate_weights_exec(), and panel_draw().
void BKE_gpencil_modifiers_foreach_ID_link | ( | struct Object * | ob, |
GreasePencilIDWalkFunc | walk, | ||
void * | userData | ||
) |
Link grease pencil modifier related IDs.
ob | Grease pencil object. |
walk | Walk option. |
userData | User data. |
Definition at line 552 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), ListBase::first, GpencilModifierTypeInfo::foreachIDLink, Object::greasepencil_modifiers, GpencilModifierData::next, and GpencilModifierData::type.
Referenced by BKE_gpencil_modifier_blend_read_lib(), blender::deg::DepsgraphNodeBuilder::build_object(), blender::deg::DepsgraphRelationBuilder::build_object(), object_blend_read_expand(), and object_foreach_id().
void BKE_gpencil_modifiers_foreach_tex_link | ( | struct Object * | ob, |
GreasePencilTexWalkFunc | walk, | ||
void * | userData | ||
) |
Link grease pencil modifier related Texts.
ob | Grease pencil object. |
walk | Walk option. |
userData | User data. |
Definition at line 565 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), ListBase::first, GpencilModifierTypeInfo::foreachTexLink, Object::greasepencil_modifiers, GpencilModifierData::next, and GpencilModifierData::type.
Referenced by buttons_texture_users_from_context().
GpencilModifierData* BKE_gpencil_modifiers_get_virtual_modifierlist | ( | const Object * | ob, |
GpencilVirtualModifierData * | UNUSEDvirtualModifierData | ||
) |
Definition at line 144 of file gpencil_modifier.c.
References VirtualModifierData::amd, Object::data, ListBase::first, Object::greasepencil_modifiers, OB_ARMATURE, OB_LATTICE, ArmatureModifierData::object, Object::parent, PARSKEL, Object::partype, Object::type, and virtualModifierCommonData.
void BKE_gpencil_modifierType_panel_id | ( | GpencilModifierType | type, |
char * | r_idname | ||
) |
Get the idname of the modifier type's panel, which was defined in the panelRegister callback.
type | Type of modifier. |
r_idname | ID name. |
Definition at line 444 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), GPENCIL_MODIFIER_TYPE_PANEL_PREFIX, GpencilModifierTypeInfo::name, and type.
Referenced by gpencil_modifier_panel_id(), and gpencil_modifier_panel_register().
void BKE_gpencil_prepare_eval_data | ( | struct Depsgraph * | depsgraph, |
struct Scene * | scene, | ||
struct Object * | ob | ||
) |
Prepare grease pencil eval data for modifiers
depsgraph | Current depsgraph. |
scene | Current scene. |
ob | Grease pencil object. |
Definition at line 708 of file gpencil_modifier.c.
References BKE_gpencil_eval_delete(), BLI_assert, bool, Object::data, DEG_debug_print_eval(), DEG_get_original_id(), depsgraph, equals_m4m4(), Object_Runtime::gpd_eval, gpencil_assign_object_eval(), gpencil_copy_structure_for_eval(), gpencil_copy_visible_frames_to_eval(), GPENCIL_CURVE_EDIT_SESSIONS_ON, GPENCIL_MULTIEDIT_SESSIONS_ON, GPENCIL_SIMPLIFY_MODIF, bGPdata::id, Object::id, is_one_v3(), is_zero_v3(), bGPDlayer::layer_mat, bGPdata::layers, LISTBASE_FOREACH, loc_eul_size_to_mat4(), bGPDlayer::location, ID::name, NULL, bGPDlayer::parent, bGPDlayer::rotation, Object::runtime, bGPDlayer::scale, scene, and ID::us.
Referenced by BKE_object_handle_data_update().
void BKE_gpencil_set_lineart_modifier_limits | ( | GpencilModifierData * | md, |
const GpencilLineartLimitInfo * | info, | ||
const bool | is_first_lineart | ||
) |
Definition at line 233 of file gpencil_modifier.c.
References BLI_assert, GpencilLineartLimitInfo::edge_types, LineartGpencilModifierData::edge_types, LineartGpencilModifierData::edge_types_override, eGpencilModifierType_Lineart, LineartGpencilModifierData::flags, LineartGpencilModifierData::level_end, LineartGpencilModifierData::level_end_override, LineartGpencilModifierData::level_start, LineartGpencilModifierData::level_start_override, LRT_GPENCIL_USE_CACHE, GpencilLineartLimitInfo::max_level, GpencilLineartLimitInfo::min_level, GpencilLineartLimitInfo::shadow_selection, LineartGpencilModifierData::shadow_selection, LineartGpencilModifierData::shadow_selection_override, LineartGpencilModifierData::shadow_use_silhouette_override, GpencilLineartLimitInfo::silhouette_selection, LineartGpencilModifierData::silhouette_selection, and GpencilModifierData::type.
Referenced by BKE_gpencil_modifiers_calc().
int BKE_gpencil_time_modifier_cfra | ( | struct Depsgraph * | depsgraph, |
struct Scene * | scene, | ||
struct Object * | ob, | ||
struct bGPDlayer * | gpl, | ||
int | cfra, | ||
bool | is_render | ||
) |
Get Time modifier frame number.
Definition at line 273 of file gpencil_modifier.c.
References BKE_gpencil_modifier_get_info(), Object::data, depsgraph, GPENCIL_ANY_EDIT_MODE, GPENCIL_MODIFIER_ACTIVE, GPENCIL_MODIFIER_EDIT, Object::greasepencil_modifiers, LISTBASE_FOREACH, GpencilModifierTypeInfo::remapTime, and scene.
Referenced by gpencil_bake_grease_pencil_animation_exec(), and gpencil_remap_time_get().
|
static |
Definition at line 669 of file gpencil_modifier.c.
References bGPDlayer::actframe, copy_frame_to_eval_ex(), bGPDframe_Runtime::gpf_orig, NULL, and bGPDframe::runtime.
Referenced by gpencil_copy_visible_frames_to_eval().
Definition at line 657 of file gpencil_modifier.c.
References BKE_gpencil_frame_copy_strokes(), BKE_gpencil_frame_original_pointers_update(), BKE_gpencil_free_strokes(), BLI_listbase_is_empty(), and bGPDframe::strokes.
Referenced by copy_frame_to_eval_cb(), and gpencil_copy_visible_frames_to_eval().
Definition at line 618 of file gpencil_modifier.c.
References BLI_assert, bGPdata::id, Object::id, LIB_TAG_COPIED_ON_WRITE, LIB_TAG_COPIED_ON_WRITE_EVAL_RESULT, bGPdata::runtime, and ID::tag.
Referenced by BKE_gpencil_prepare_eval_data().
Definition at line 631 of file gpencil_modifier.c.
References BKE_defgroup_copy_list(), BKE_gpencil_layer_duplicate(), BKE_gpencil_layer_original_pointers_update(), BKE_libblock_copy_ex(), BLI_addtail(), BLI_listbase_clear(), bGPDlayer_Runtime::gpl_orig, bGPdata::id, bGPdata::layers, LIB_ID_COPY_LOCALIZE, LISTBASE_FOREACH, bGPdata::mat, MEM_dupallocN, NULL, bGPDlayer::runtime, and bGPdata::vertex_group_names.
Referenced by BKE_gpencil_prepare_eval_data().
|
static |
Definition at line 686 of file gpencil_modifier.c.
References BKE_gpencil_layer_frame_get(), BKE_gpencil_visible_stroke_advanced_iter(), RenderData::cfra, copy_frame_to_eval_cb(), copy_frame_to_eval_ex(), Object::data, depsgraph, bGPDframe::framenum, GP_GETFRAME_USE_PREV, gpencil_remap_time_get(), bGPdata::layers, LISTBASE_FOREACH, NULL, Scene::r, and scene.
Referenced by BKE_gpencil_prepare_eval_data().
|
static |
Definition at line 475 of file gpencil_modifier.c.
References id_us_plus(), IDWALK_CB_USER, and NULL.
Referenced by BKE_gpencil_modifier_copydata_ex().
|
static |
Remap grease pencil frame (Time modifier)
depsgraph | Current depsgraph |
scene | Current scene |
ob | Grease pencil object |
gpl | Grease pencil layer |
Definition at line 593 of file gpencil_modifier.c.
References BKE_gpencil_has_time_modifiers(), BKE_gpencil_time_modifier_cfra(), bool, DAG_EVAL_RENDER, DEG_get_ctime(), DEG_get_mode(), depsgraph, and scene.
Referenced by BKE_gpencil_frame_retime_get(), and gpencil_copy_visible_frames_to_eval().
|
static |
Definition at line 376 of file gpencil_modifier.c.
References id_us_min(), IDWALK_CB_USER, and NULL.
Referenced by BKE_gpencil_modifier_free_ex().
|
static |
Definition at line 53 of file gpencil_modifier.c.
Referenced by BKE_gpencil_modifier_set_error().
|
static |
Definition at line 54 of file gpencil_modifier.c.
Referenced by BKE_gpencil_modifier_get_info(), and BKE_gpencil_modifier_init().