Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | tGPspoint |
Macros | |
#define | GPENCIL_MINIMUM_JOIN_DIST 20.0f |
#define | GP_PAR_ARMATURE_NAME 0 |
#define | GP_PAR_ARMATURE_AUTO 1 |
#define | GP_PRIM_DATABUF_SIZE 5 |
Typedefs | |
typedef enum eGP_ReprojectModes | eGP_ReprojectModes |
typedef enum eGP_TargetObjectMode | eGP_TargetObjectMode |
typedef struct tGPspoint | tGPspoint |
Enumerations | |
enum | eGP_ReprojectModes { GP_REPROJECT_FRONT = 0 , GP_REPROJECT_SIDE , GP_REPROJECT_TOP , GP_REPROJECT_VIEW , GP_REPROJECT_SURFACE , GP_REPROJECT_CURSOR , GP_REPROJECT_KEEP } |
enum | eGP_TargetObjectMode { GP_TARGET_OB_NEW = 0 , GP_TARGET_OB_SELECTED = 1 } |
#define GP_PAR_ARMATURE_AUTO 1 |
Definition at line 367 of file ED_gpencil.h.
#define GP_PAR_ARMATURE_NAME 0 |
Definition at line 366 of file ED_gpencil.h.
#define GP_PRIM_DATABUF_SIZE 5 |
Number of values defining each point in the built-in data buffers for primitives.
Definition at line 388 of file ED_gpencil.h.
#define GPENCIL_MINIMUM_JOIN_DIST 20.0f |
Definition at line 49 of file ED_gpencil.h.
typedef enum eGP_ReprojectModes eGP_ReprojectModes |
typedef enum eGP_TargetObjectMode eGP_TargetObjectMode |
enum eGP_ReprojectModes |
Enumerator | |
---|---|
GP_REPROJECT_FRONT | |
GP_REPROJECT_SIDE | |
GP_REPROJECT_TOP | |
GP_REPROJECT_VIEW | |
GP_REPROJECT_SURFACE | |
GP_REPROJECT_CURSOR | |
GP_REPROJECT_KEEP |
Definition at line 52 of file ED_gpencil.h.
enum eGP_TargetObjectMode |
Enumerator | |
---|---|
GP_TARGET_OB_NEW | |
GP_TARGET_OB_SELECTED |
Definition at line 68 of file ED_gpencil.h.
Get the active Grease Pencil data-block
struct bGPdata* ED_annotation_data_get_active_direct | ( | struct ID * | screen_id, |
struct ScrArea * | area, | ||
struct Scene * | scene | ||
) |
Get the active Grease Pencil data-block, when context is not available.
Definition at line 236 of file gpencil_utils.c.
References blender::compositor::area(), ED_annotation_data_get_pointers_direct(), NULL, and scene.
Referenced by screen_ctx_active_annotation_layer(), and screen_ctx_annotation_data().
struct bGPdata** ED_annotation_data_get_pointers | ( | const struct bContext * | C, |
struct PointerRNA * | r_ptr | ||
) |
Get pointer to active Grease Pencil data-block, and an RNA-pointer to trace back to whatever owns it.
struct bGPdata** ED_annotation_data_get_pointers_direct | ( | struct ID * | screen_id, |
struct ScrArea * | area, | ||
struct Scene * | scene, | ||
struct PointerRNA * | r_ptr | ||
) |
Get pointer to active Grease Pencil data-block for annotations, and an RNA-pointer to trace back to whatever owns it, when context info is not available.
Definition at line 114 of file gpencil_utils.c.
References blender::compositor::area(), BKE_tracking_track_get_active(), ED_space_clip_get_clip(), MovieClip::gpd, bNodeTree::gpd, Scene::gpd, SpaceSeq::gpd, SpaceImage::gpd, MovieTrackingTrack::gpd, SpaceClip::gpencil_src, MovieClip::id, bNodeTree::id, Scene::id, SpaceNode::nodetree, NULL, RNA_id_pointer_create(), RNA_pointer_create(), SC_GPENCIL_SRC_TRACK, scene, SPACE_CLIP, SPACE_IMAGE, SPACE_INFO, SPACE_NODE, SPACE_PROPERTIES, SPACE_SEQ, SPACE_TOPBAR, SPACE_VIEW3D, and MovieClip::tracking.
Referenced by ED_annotation_data_get_active_direct(), ED_annotation_data_get_pointers(), and screen_ctx_annotation_data_owner().
Draw grease-pencil sketches to specified 2d-view that uses ibuf corrections.
void ED_annotation_draw_ex | ( | struct Scene * | scene, |
struct bGPdata * | gpd, | ||
int | winx, | ||
int | winy, | ||
int | cfra, | ||
char | spacetype | ||
) |
Definition at line 936 of file annotate_draw.c.
References annotation_draw_data_all(), GP_DRAWDATA_NOSTATUS, GP_DRAWDATA_ONLYV2D, and scene.
Referenced by screen_opengl_render_doit().
Draw grease-pencil sketches to specified 2d-view assuming that matrices are already set correctly.
void ED_annotation_draw_view3d | ( | struct Scene * | scene, |
struct Depsgraph * | depsgraph, | ||
struct View3D * | v3d, | ||
struct ARegion * | region, | ||
bool | only3d | ||
) |
Draw annotations sketches to specified 3d-view assuming that matrices are already set correctly. NOTE: this gets called twice - first time with only3d=true to draw 3d-strokes, second time with only3d=false for screen-aligned strokes.
Definition at line 884 of file annotate_draw.c.
References annotation_draw_data_all(), RenderData::cfra, depsgraph, ED_view3d_calc_camera_border(), View3D::flag2, G, G_FLAG_RENDER_VIEWPORT, GP_DRAWDATA_NOSTATUS, GP_DRAWDATA_ONLY3D, Scene::gpd, NULL, RegionView3D::persp, Scene::r, ARegion::regiondata, round_fl_to_int(), RV3D_CAMOB, scene, View3D::spacetype, V3D_HIDE_OVERLAYS, ARegion::winx, ARegion::winy, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by DRW_draw_callbacks_post_scene().
bool ED_gpencil_add_armature | ( | const struct bContext * | C, |
struct ReportList * | reports, | ||
struct Object * | ob, | ||
struct Object * | ob_arm | ||
) |
bool ED_gpencil_add_armature_weights | ( | const struct bContext * | C, |
struct ReportList * | reports, | ||
struct Object * | ob, | ||
struct Object * | ob_arm, | ||
int | mode | ||
) |
Helper function to create default colors and drawing brushes.
Definition at line 1414 of file gpencil_utils.c.
References BKE_brush_gpencil_paint_presets(), BKE_curvemap_reset(), BKE_curvemapping_add(), BKE_curvemapping_init(), BKE_gpencil_object_material_ensure_from_active_input_toolsettings(), BKE_paint_ensure(), Paint::brush, C, CurveMapping::clipr, CurveMapping::cm, CTX_data_main(), CTX_data_tool_settings(), GP_Sculpt_Settings::cur_falloff, CURVE_PRESET_GAUSS, CURVEMAP_SLOPE_POSITIVE, ToolSettings::gp_paint, ToolSettings::gp_sculpt, Brush::gpencil_settings, NULL, and GpPaint::paint.
Referenced by blender::io::gpencil::GpencilImporter::create_object(), ED_gpencil_add_object(), and object_gpencil_add_exec().
bool ED_gpencil_add_lattice_modifier | ( | const struct bContext * | C, |
struct ReportList * | reports, | ||
struct Object * | ob, | ||
struct Object * | ob_latt | ||
) |
struct Object* ED_gpencil_add_object | ( | struct bContext * | C, |
const float | loc[3], | ||
unsigned short | local_view_bits | ||
) |
Helper function to create new OB_GPENCIL Object.
Definition at line 1402 of file gpencil_utils.c.
References C, ED_gpencil_add_defaults(), ED_object_add_type(), NULL, OB_GPENCIL, and rot.
Referenced by gpencil_bake_grease_pencil_animation_exec(), gpencil_bake_mesh_animation_exec(), gpencil_session_initdata(), image_to_gpencil_exec(), object_convert_exec(), and trace_initialize_job_data().
bool ED_gpencil_anim_copybuf_copy | ( | struct bAnimContext * | ac | ) |
This function adds data to the copy/paste buffer, freeing existing data first Only the selected GP-layers get their selected keyframes copied.
Returns whether the copy operation was successful or not.
Definition at line 316 of file editaction_gpencil.c.
References ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIMFILTER_DATA_VISIBLE, ANIMFILTER_LIST_VISIBLE, ANIMFILTER_NODUPLIS, ANIMTYPE_GPLAYER, BKE_gpencil_frame_duplicate(), BLI_addtail(), BLI_assert, BLI_listbase_is_empty(), BLI_movelisttolist(), BLI_strncpy(), RenderData::cfra, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, ED_gpencil_anim_copybuf_free(), filter(), ListBase::first, bGPDlayer::frames, GP_FRAME_SELECT, gpencil_anim_copy_cfra, gpencil_anim_copy_firstframe, gpencil_anim_copy_lastframe, gpencil_anim_copybuf, bGPDlayer::info, LISTBASE_FOREACH, MEM_callocN, bAnimListElem::next, NULL, Scene::r, scene, bAnimContext::scene, and bAnimListElem::type.
Referenced by actkeys_copy_exec().
This function frees any MEM_calloc'ed copy/paste buffer data.
Definition at line 306 of file editaction_gpencil.c.
References BKE_gpencil_free_layers(), BLI_listbase_clear(), gpencil_anim_copy_cfra, gpencil_anim_copy_firstframe, gpencil_anim_copy_lastframe, and gpencil_anim_copybuf.
Referenced by ED_gpencil_anim_copybuf_copy(), and WM_exit_ex().
bool ED_gpencil_anim_copybuf_paste | ( | struct bAnimContext * | ac, |
short | copy_mode | ||
) |
Pastes keyframes from buffer, and reports success.
Definition at line 383 of file editaction_gpencil.c.
References ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FOREDIT, ANIMFILTER_LIST_VISIBLE, ANIMFILTER_NODUPLIS, ANIMFILTER_SEL, ANIMTYPE_GPLAYER, BKE_gpencil_layer_frame_delete(), BKE_gpencil_layer_frame_get(), BKE_gpencil_stroke_duplicate(), BLI_addtail(), BLI_listbase_is_empty(), RenderData::cfra, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, DEG_id_tag_update(), filter(), ListBase::first, bGPDframe::framenum, GP_GETFRAME_ADD_NEW, gpencil_anim_copy_cfra, gpencil_anim_copy_firstframe, gpencil_anim_copy_lastframe, gpencil_anim_copybuf, bAnimListElem::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, bGPDlayer::info, KEYFRAME_PASTE_OFFSET_CFRA_END, KEYFRAME_PASTE_OFFSET_CFRA_RELATIVE, KEYFRAME_PASTE_OFFSET_CFRA_START, KEYFRAME_PASTE_OFFSET_NONE, ListBase::last, bAnimListElem::next, bGPDstroke::next, NULL, offset, Scene::r, scene, bAnimContext::scene, STREQ, and bAnimListElem::type.
Referenced by actkeys_paste_exec().
Draw eraser cursor.
Definition at line 1684 of file gpencil_utils.c.
References GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_smooth(), GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), imm_draw_circle_fill_2d(), imm_draw_circle_wire_2d(), immBindBuiltinProgram(), immUnbindProgram(), immUniform1f(), immUniform1i(), immUniform2f(), immUniformColor4f(), immUniformColor4ub(), immVertexFormat(), max_ii(), Brush::size, x, and y.
Referenced by gpencil_brush_cursor_draw().
Add a Simple empty object with one layer and one color.
Add a Simple LineArt setup.
Definition at line 72 of file gpencil_add_lineart.c.
References Object::actcol, BKE_gpencil_frame_addnew(), BKE_gpencil_layer_addnew(), C, CTX_data_main(), Object::data, DEG_id_tag_update(), bGPdata::flag, GP_DATA_CACHE_IS_DIRTY, gp_stroke_material_black, gpencil_lineart_material(), bGPdata::id, ID_RECALC_GEOMETRY, and ID_RECALC_TRANSFORM.
Referenced by object_gpencil_add_exec().
Add a 2D Suzanne (original model created by Matias Mendiola).
Definition at line 824 of file gpencil_add_monkey.c.
References Object::actcol, BKE_gpencil_frame_addnew(), BKE_gpencil_layer_addnew(), BKE_gpencil_stroke_add(), BKE_gpencil_stroke_geometry_update(), C, RenderData::cfra, CTX_data_main(), CTX_data_scene(), Object::data, data0, data1, data10, data11, data12, data13, data14, data15, data16, data17, data18, data19, data2, data20, data21, data22, data23, data24, data25, data26, data27, data3, data4, data5, data6, data7, data8, data9, DEG_id_tag_update(), ED_gpencil_stroke_init_data(), bGPdata::flag, GP_DATA_CACHE_IS_DIRTY, gp_monkey_pct_black, gp_monkey_pct_eyes, gp_monkey_pct_pupils, gp_monkey_pct_skin, gp_monkey_pct_skin_light, gp_monkey_pct_skin_shadow, gpencil_monkey_color(), bGPdata::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, Scene::r, and scene.
Referenced by object_gpencil_add_exec().
Add a Simple stroke with colors (original design created by Daniel M. Lara and Matias Mendiola).
Definition at line 193 of file gpencil_add_stroke.c.
References Object::actcol, BKE_gpencil_frame_addnew(), BKE_gpencil_layer_addnew(), BKE_gpencil_stroke_add(), BKE_gpencil_stroke_geometry_update(), C, RenderData::cfra, CTX_data_main(), CTX_data_scene(), Object::data, data0, DEG_id_tag_update(), ED_gpencil_stroke_init_data(), bGPdata::flag, GP_DATA_CACHE_IS_DIRTY, gp_stroke_material_black, gp_stroke_material_blue, gp_stroke_material_green, gp_stroke_material_grey, gp_stroke_material_red, gp_stroke_material_white, gpencil_stroke_material(), bGPdata::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, Scene::r, scene, and UNUSED_VARS.
Referenced by object_gpencil_add_exec().
Get the active Grease Pencil data-block
Definition at line 230 of file gpencil_utils.c.
References blender::compositor::area(), ED_gpencil_data_get_pointers_direct(), and NULL.
Referenced by ED_gpencil_data_get_active_evaluated(), screen_ctx_active_gpencil_frame(), screen_ctx_active_gpencil_layer(), screen_ctx_editable_gpencil_layers(), screen_ctx_editable_gpencil_strokes(), screen_ctx_gpencil_data(), and screen_ctx_visible_gpencil_layers().
Get the evaluated copy of the active Grease Pencil data-block (where applicable)
struct bGPdata** ED_gpencil_data_get_pointers | ( | const struct bContext * | C, |
struct PointerRNA * | r_ptr | ||
) |
Get pointer to active Grease Pencil data-block, and an RNA-pointer to trace back to whatever owns it.
struct bGPdata** ED_gpencil_data_get_pointers_direct | ( | struct ScrArea * | area, |
struct Object * | ob, | ||
struct PointerRNA * | r_ptr | ||
) |
Context independent (i.e. each required part is passed in instead).
Get pointer to active Grease Pencil data-block, and an RNA-pointer to trace back to whatever owns it, when context info is not available.
Definition at line 85 of file gpencil_utils.c.
References blender::compositor::area(), Object::data, Object::id, NULL, OB_GPENCIL, RNA_id_pointer_create(), SPACE_INFO, SPACE_PROPERTIES, SPACE_TOPBAR, SPACE_VIEW3D, and Object::type.
Referenced by ED_gpencil_data_get_active_direct(), ED_gpencil_data_get_pointers(), and screen_ctx_gpencil_data_owner().
bool ED_gpencil_data_owner_is_annotation | ( | struct PointerRNA * | owner_ptr | ) |
Utility to check whether the r_ptr output of ED_gpencil_data_get_pointers() is for annotation usage.
Definition at line 270 of file gpencil_utils.c.
References PointerRNA::type.
Referenced by annotation_session_initdata(), and gpencil_session_initdata().
void ED_gpencil_drawing_reference_get | ( | const struct Scene * | scene, |
const struct Object * | ob, | ||
char | align_flag, | ||
float | r_vec[3] | ||
) |
Get drawing reference point for conversion or projection of the stroke
r_vec | Reference point found |
void ED_gpencil_fill_vertex_color_set | ( | struct ToolSettings * | ts, |
struct Brush * | brush, | ||
struct bGPDstroke * | gps | ||
) |
Definition at line 2706 of file gpencil_utils.c.
References BrushGpencilSettings::brush_draw_mode, copy_v3_v3(), GP_BRUSH_MODE_MATERIAL, GP_BRUSH_MODE_VERTEXCOLOR, Brush::gpencil_settings, GPENCIL_USE_VERTEX_COLOR_FILL, Brush::rgb, srgb_to_linearrgb_v4(), bGPDstroke::vert_color_fill, BrushGpencilSettings::vertex_factor, and zero_v4().
Referenced by gpencil_primitive_set_initdata(), gpencil_stroke_from_buffer(), and gpencil_stroke_newfrombuffer().
Check whether there's an active GP keyframe on the current frame.
void ED_gpencil_init_random_settings | ( | struct Brush * | brush, |
const int | mval[2], | ||
struct GpRandomSettings * | random_settings | ||
) |
Definition at line 2748 of file gpencil_utils.c.
References BLI_hash_int_01(), BLI_hash_int_2d(), ceil(), BrushGpencilSettings::draw_random_press, BrushGpencilSettings::draw_random_strength, Brush::gpencil_settings, GpRandomSettings::hsv, PIL_check_seconds_timer(), GpRandomSettings::pressure, BrushGpencilSettings::random_hue, BrushGpencilSettings::random_saturation, BrushGpencilSettings::random_value, seed, GpRandomSettings::strength, GpRandomSettings::uv, BrushGpencilSettings::uv_random, and zero_v3().
Referenced by gpencil_draw_invoke(), and gpencil_primitive_invoke().
int ED_gpencil_join_objects_exec | ( | struct bContext * | C, |
struct wmOperator * | op | ||
) |
Join objects called from OBJECT_OT_join.
Definition at line 2817 of file gpencil_data.c.
References bGPdata::adt, Object::adt, ADT_MERGECOPY_KEEP_DST, GpencilModifierTypeInfo::bakeModifier, BKE_animdata_copy(), BKE_animdata_merge_copy(), BKE_fcurves_main_cb(), BKE_gpencil_layer_duplicate(), BKE_gpencil_layer_transform_matrix_get(), BKE_gpencil_material(), BKE_gpencil_modifier_get_info(), BKE_gpencil_object_material_ensure(), BKE_object_defgroup_unique_name(), BKE_object_material_len_p(), BKE_report(), BLI_addtail(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_str_new(), BLI_listbase_count(), BLI_listbase_is_empty(), BLI_strdup(), BLI_uniquename(), C, copy_m3_m4(), CTX_data_active_object(), CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_data_scene(), Object::data, DATA_, MDeformWeight::def_nr, DEG_id_tag_update(), DEG_relations_tag_update(), depsgraph, MDeformVert::dw, ED_object_base_free_and_unlink(), bGPDlayer::frames, GPENCIL_ANY_MODE, gpencil_joined_fix_animdata_cb(), bGPdata::id, Object::id, ID_RECALC_COPY_ON_WRITE, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, if(), bGPDlayer::info, invert_m3_m3_safe_ortho(), invert_m4_m4_safe_ortho(), bGPdata::layers, LISTBASE_FOREACH, Object::loc, MEM_dupallocN, MEM_freeN, mul_m3_v3(), mul_v3_m3v3(), mul_v3_m4v3(), tJoinGPencil_AdtFixData::names_map, NC_SCENE, ND_LAYER_CONTENT, ND_OB_ACTIVE, NULL, OB_GPENCIL, Object::obmat, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, RPT_WARNING, scene, tJoinGPencil_AdtFixData::src_gpd, sub_v3_v3(), sub_v3_v3v3(), tJoinGPencil_AdtFixData::tar_gpd, Object::type, bGPdata::vertex_group_active_index, bGPdata::vertex_group_names, WM_event_add_notifier(), and bGPDspoint::x.
Referenced by object_join_exec().
Check if one of the frames in this layer is selected.
Set all/none/invert select.
Definition at line 144 of file editaction_gpencil.c.
References ED_gpencil_select_frames(), and NULL.
Referenced by deselect_action_keys().
Delete selected frames.
Definition at line 232 of file editaction_gpencil.c.
References BKE_gpencil_layer_frame_delete(), bGPDlayer::frames, GP_FRAME_SELECT, LISTBASE_FOREACH_MUTABLE, and NULL.
Referenced by delete_action_keys().
Duplicate selected frames from given gp-layer.
Definition at line 252 of file editaction_gpencil.c.
References BKE_gpencil_frame_duplicate(), BLI_insertlinkafter(), bGPDlayer::frames, GP_FRAME_SELECT, LISTBASE_FOREACH_MUTABLE, and NULL.
Referenced by duplicate_action_keys().
Set keyframe type for selected frames from given gp-layer
type | The type of keyframe (eBezTriple_KeyframeType) to set selected frames to. |
Definition at line 275 of file editaction_gpencil.c.
References bGPDlayer::frames, GP_FRAME_SELECT, LISTBASE_FOREACH, NULL, and type.
Referenced by setkeytype_action_keys().
bool ED_gpencil_layer_frames_looper | ( | struct bGPDlayer * | gpl, |
struct Scene * | scene, | ||
bool(*)(struct bGPDframe *, struct Scene *) | gpf_cb | ||
) |
Loops over the GP-frames for a GP-layer, and applies the given callback.
void ED_gpencil_layer_frames_select_box | ( | struct bGPDlayer * | gpl, |
float | min, | ||
float | max, | ||
short | select_mode | ||
) |
Select the frames in this layer that occur within the bounds specified.
Definition at line 170 of file editaction_gpencil.c.
References bGPDlayer::frames, gpencil_frame_select(), IN_RANGE, LISTBASE_FOREACH, max, min, and NULL.
Referenced by actkeys_select_leftright(), box_select_elem(), and markers_selectkeys_between().
void ED_gpencil_layer_frames_select_region | ( | struct KeyframeEditData * | ked, |
struct bGPDlayer * | gpl, | ||
short | tool, | ||
short | select_mode | ||
) |
Select the frames in this layer that occur within the lasso/circle region specified.
Definition at line 184 of file editaction_gpencil.c.
References BEZT_OK_CHANNEL_CIRCLE, BEZT_OK_CHANNEL_LASSO, KeyframeEditData::channel_y, KeyframeEditData::data, bGPDlayer::frames, gpencil_frame_select(), keyframe_region_circle_test(), keyframe_region_lasso_test(), LISTBASE_FOREACH, and NULL.
Referenced by region_select_elem().
Make a listing all the gp-frames in a layer as cfraelems.
Definition at line 68 of file editaction_gpencil.c.
References BLI_addtail(), CfraElem::cfra, ELEM, float(), bGPDlayer::frames, GP_FRAME_SELECT, LISTBASE_FOREACH, MEM_callocN, NULL, and CfraElem::sel.
Referenced by columnselect_action_keys().
void ED_gpencil_layer_merge | ( | struct bGPdata * | gpd, |
struct bGPDlayer * | gpl_src, | ||
struct bGPDlayer * | gpl_dst, | ||
bool | reverse | ||
) |
Merge two layers.
Definition at line 3234 of file gpencil_utils.c.
References bGPDlayer::act_mask, BKE_gpencil_layer_active_set(), BKE_gpencil_layer_delete(), BKE_gpencil_layer_frame_get(), BKE_gpencil_layer_mask_named_get(), BKE_gpencil_layer_mask_sort(), BKE_gpencil_layer_named_get(), BLI_addtail(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_int_new_ex(), BLI_ghash_lookup(), BLI_movelisttolist(), BLI_movelisttolist_reverse(), ListBase::first, bGPDframe::framenum, bGPDlayer::frames, GP_GETFRAME_ADD_COPY, bGPDlayer::info, bGPDframe::key_type, LISTBASE_FOREACH, mask(), bGPDlayer::mask_layers, MEM_dupallocN, bGPDframe::next, NULL, POINTER_FROM_INT, STREQ, and bGPDframe::strokes.
Referenced by gpencil_merge_layer_exec().
Mirror selected gp-frames on... TODO: mirror over a specific time.
Definition at line 635 of file editaction_gpencil.c.
References ED_gpencil_layer_frames_looper(), gpencil_frame_mirror_cframe(), gpencil_frame_mirror_marker(), gpencil_frame_mirror_xaxis(), gpencil_frame_mirror_yaxis(), MIRROR_KEYS_CURFRAME, MIRROR_KEYS_MARKER, MIRROR_KEYS_XAXIS, MIRROR_KEYS_YAXIS, NULL, and scene.
Referenced by mirror_action_keys().
Snap selected frames to ....
Definition at line 535 of file editaction_gpencil.c.
References ED_gpencil_layer_frames_looper(), gpencil_frame_snap_cframe(), gpencil_frame_snap_nearest(), gpencil_frame_snap_nearestsec(), gpencil_frame_snap_nearmarker(), scene, SNAP_KEYS_CURFRAME, SNAP_KEYS_NEARFRAME, SNAP_KEYS_NEARMARKER, and SNAP_KEYS_NEARSEC.
Referenced by snap_action_keys().
void ED_gpencil_point_vertex_color_set | ( | struct ToolSettings * | ts, |
struct Brush * | brush, | ||
struct bGPDspoint * | pt, | ||
struct tGPspoint * | tpt | ||
) |
Definition at line 2722 of file gpencil_utils.c.
References BrushGpencilSettings::brush_draw_mode, copy_v3_v3(), GP_BRUSH_MODE_MATERIAL, GP_BRUSH_MODE_VERTEXCOLOR, Brush::gpencil_settings, GPENCIL_USE_VERTEX_COLOR_STROKE, NULL, Brush::rgb, srgb_to_linearrgb_v4(), tGPspoint::vert_color, bGPDspoint::vert_color, BrushGpencilSettings::vertex_factor, and zero_v4().
Referenced by gpencil_primitive_update_strokes(), gpencil_stroke_from_buffer(), and gpencil_stroke_newfrombuffer().
void ED_gpencil_project_point_to_plane | ( | const struct Scene * | scene, |
const struct Object * | ob, | ||
struct bGPDlayer * | gpl, | ||
const struct RegionView3D * | rv3d, | ||
const float | origin[3], | ||
int | axis, | ||
struct bGPDspoint * | pt | ||
) |
Reproject given point to a plane locked to axis to avoid stroke offset
pt | Point to affect (used for input & output). |
void ED_gpencil_project_stroke_to_plane | ( | const struct Scene * | scene, |
const struct Object * | ob, | ||
const struct RegionView3D * | rv3d, | ||
struct bGPDlayer * | gpl, | ||
struct bGPDstroke * | gps, | ||
const float | origin[3], | ||
int | axis | ||
) |
Reproject all points of the stroke to a plane locked to axis to avoid stroke offset
void ED_gpencil_project_stroke_to_view | ( | struct bContext * | C, |
struct bGPDlayer * | gpl, | ||
struct bGPDstroke * | gps | ||
) |
Definition at line 924 of file gpencil_utils.c.
References BKE_gpencil_layer_transform_matrix_get(), C, CTX_data_active_object(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), depsgraph, gpencil_point_conversion_init(), gpencil_point_to_parent_space(), gpencil_point_to_xy_fl(), gpencil_point_xy_to_3d(), invert_m4_m4(), mul_m4_v3(), NULL, bGPDstroke::points, scene, bGPDspoint::x, xy, and zero_axis_bias_m4().
Referenced by gpencil_primitive_update_strokes(), gpencil_stroke_from_buffer(), and gpencil_stroke_newfrombuffer().
void ED_gpencil_projected_2d_bound_box | ( | const struct GP_SpaceConversion * | gsc, |
const struct bGPDstroke * | gps, | ||
const float | diff_mat[4][4], | ||
float | r_min[2], | ||
float | r_max[2] | ||
) |
Get the bigger 2D bound box points.
void ED_gpencil_reset_layers_parent | ( | struct Depsgraph * | depsgraph, |
struct Object * | obact, | ||
struct bGPdata * | gpd | ||
) |
Reset parent matrix for all layers.
Definition at line 1353 of file gpencil_utils.c.
References BKE_gpencil_layer_transform_matrix_get(), BKE_pose_channel_find_name(), copy_m4_m4(), copy_v3_v3(), depsgraph, ELEM, equals_m4m4(), invert_m4_m4(), bGPdata::layers, LISTBASE_FOREACH, mul_m4_m4m4(), mul_m4_v3(), NULL, Object::obmat, PARBONE, PAROBJECT, PARSKEL, bPoseChannel::pose_mat, sub_v3_v3(), bGPDspoint::x, and zero_v3().
Referenced by gpencil_editmode_toggle_exec().
struct tGPspoint* ED_gpencil_sbuffer_ensure | ( | struct tGPspoint * | buffer_array, |
int * | buffer_size, | ||
int * | buffer_used, | ||
bool | clear | ||
) |
Ensure the tGPspoint buffer (while drawing stroke) size is enough to save all points of the stroke.
Definition at line 2636 of file gpencil_utils.c.
References clear(), GP_STROKE_BUFFER_CHUNK, MEM_callocN, MEM_recallocN, and NULL.
Referenced by annotation_session_validatebuffer(), annotation_stroke_addpoint(), gpencil_add_arc_points(), gpencil_add_guide_points(), gpencil_primitive_update_strokes(), gpencil_session_validatebuffer(), and gpencil_stroke_addpoint().
Definition at line 2674 of file gpencil_utils.c.
References bGPdata_Runtime::cp_points, Object::data, bGPdata::runtime, bGPdata_Runtime::sbuffer, bGPdata_Runtime::sbuffer_sflag, bGPdata_Runtime::sbuffer_size, bGPdata_Runtime::sbuffer_used, and bGPdata_Runtime::tot_cp_points.
Referenced by gpencil_primitive_update_strokes(), gpencil_session_cleanup(), and gpencil_stroke_addpoint().
void ED_gpencil_sbuffer_vertex_color_set | ( | struct Depsgraph * | depsgraph, |
struct Object * | ob, | ||
struct ToolSettings * | ts, | ||
struct Brush * | brush, | ||
struct Material * | material, | ||
float | random_color[3], | ||
float | pen_pressure | ||
) |
Definition at line 2875 of file gpencil_utils.c.
References BrushGpencilSettings::brush_draw_mode, copy_v3_v3(), copy_v4_v4(), Object::data, DEG_get_evaluated_id(), depsgraph, GP_BRUSH_MODE_MATERIAL, GP_BRUSH_MODE_VERTEXCOLOR, Material::gp_style, gpencil_sbuffer_vertex_color_random(), Brush::gpencil_settings, GPENCIL_USE_VERTEX_COLOR_FILL, GPENCIL_USE_VERTEX_COLOR_STROKE, Object::id, material, bGPdata_Runtime::matid, NULL, Brush::rgb, bGPdata::runtime, bGPdata_Runtime::sbuffer, bGPdata_Runtime::sbuffer_used, srgb_to_linearrgb_v4(), tGPspoint::vert_color, bGPdata_Runtime::vert_color_fill, and BrushGpencilSettings::vertex_factor.
Referenced by gpencil_primitive_update_strokes(), gpencil_session_validatebuffer(), and gpencil_stroke_addpoint().
Definition at line 2552 of file gpencil_utils.c.
References bGPDcurve_point::bezt, BEZT_DESEL_ALL, BEZT_SEL_ALL, BEZT_SEL_INVERT, BKE_gpencil_stroke_editcurve_update(), BKE_gpencil_stroke_geometry_update(), BKE_gpencil_stroke_select_index_reset(), BKE_gpencil_stroke_select_index_set(), C, CTX_data_active_object(), bGPDcurve::curve_points, Object::data, bGPDcurve_point::flag, bGPDcurve::flag, GP_CURVE_POINT_SELECT, GP_CURVE_SELECT, GP_EDITABLE_CURVES_BEGIN, GP_EDITABLE_CURVES_END, GP_EDITABLE_STROKES_BEGIN, GP_EDITABLE_STROKES_END, GP_STROKE_NEEDS_CURVE_UPDATE, GP_STROKE_SELECT, NULL, SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, bGPdata::select_last_index, and bGPDcurve::tot_curve_points.
Referenced by gpencil_circle_select_exec(), and gpencil_select_all_exec().
Select the frame in this layer that occurs on this frame (there should only be one at most).
Definition at line 155 of file editaction_gpencil.c.
References BKE_gpencil_layer_frame_find(), gpencil_frame_select(), and NULL.
Referenced by actkeys_mselect_column(), actkeys_mselect_single(), and columnselect_action_keys().
Set all/none/invert select (like above, but with SELECT_* modes).
Definition at line 131 of file editaction_gpencil.c.
References bGPDlayer::frames, gpencil_frame_select(), LISTBASE_FOREACH, and NULL.
Referenced by actkeys_mselect_channel_only(), and ED_gpencil_layer_frame_select_set().
int ED_gpencil_select_stroke_segment | ( | struct bGPdata * | gpd, |
struct bGPDlayer * | gpl, | ||
struct bGPDstroke * | gps, | ||
struct bGPDspoint * | pt, | ||
bool | select, | ||
bool | insert, | ||
float | scale, | ||
float | r_hita[3], | ||
float | r_hitb[3] | ||
) |
Extend selection to stroke intersections:
Definition at line 2256 of file gpencil_utils.c.
References bGPDlayer::actframe, BKE_gpencil_stroke_2d_flat_ref(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_ptr_new(), BLI_ghashIterator_getValue(), BLI_listbase_count(), CLAMP_MAX, CLAMP_MIN, copy_v2_v2(), bGPDspoint::flag, float(), GHASH_ITER, GP_SPOINT_SELECT, gpencil_calc_factor(), gpencil_check_collision(), gpencil_insert_point(), bGPDlayer_Runtime::gpl_orig, if(), blender::bke::curves::bezier::insert(), interp_v3_v3v3(), LISTBASE_FOREACH, MEM_callocN, MEM_dupallocN, MEM_mallocN, MEM_SAFE_FREE, NULL, bGPDstroke::points, bGPDlayer::runtime, select(), bGPDstroke::totpoints, and bGPDspoint::x.
Referenced by gpencil_cutter_lasso_select(), gpencil_generic_stroke_select(), gpencil_select_exec(), and gpencil_stroke_do_circle_sel().
Definition at line 2454 of file gpencil_utils.c.
References BKE_gpencil_stroke_select_index_reset(), BKE_gpencil_stroke_select_index_set(), C, CTX_data_active_object(), CTX_DATA_BEGIN, CTX_DATA_END, Object::data, ED_gpencil_stroke_can_use(), bGPDspoint::flag, bGPDstroke::flag, GP_SPOINT_SELECT, GP_STROKE_SELECT, LISTBASE_FOREACH, bGPDstroke::next, bGPDstroke::points, SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, and bGPdata::select_last_index.
Referenced by gpencil_circle_select_exec(), and gpencil_select_all_exec().
int ED_gpencil_session_active | ( | void | ) |
Definition at line 44 of file gpencil_undo.c.
References BLI_listbase_is_empty(), and undo_nodes.
Referenced by annotation_draw_data_layers(), annotation_draw_poll(), annotation_session_initdata(), ed_undo_step_by_index(), ed_undo_step_by_name(), ed_undo_step_direction(), and gpencil_draw_poll().
Set the layer's channel as active
Definition at line 217 of file editaction_gpencil.c.
References BKE_gpencil_layer_active_get(), BKE_gpencil_layer_active_set(), BKE_gpencil_layer_autolock_set(), bGPDlayer::flag, GP_LAYER_SELECT, NA_EDITED, NC_GPENCIL, ND_DATA, NULL, and WM_main_add_notifier().
Referenced by mouse_action_keys().
Set object modes.
Definition at line 1946 of file gpencil_utils.c.
References C, ED_gpencil_toggle_brush_cursor(), bGPdata::flag, GP_DATA_STROKE_EDITMODE, GP_DATA_STROKE_PAINTMODE, GP_DATA_STROKE_SCULPTMODE, GP_DATA_STROKE_VERTEXMODE, GP_DATA_STROKE_WEIGHTMODE, NULL, OB_MODE_EDIT_GPENCIL, OB_MODE_PAINT_GPENCIL, OB_MODE_SCULPT_GPENCIL, OB_MODE_VERTEX_GPENCIL, and OB_MODE_WEIGHT_GPENCIL.
Referenced by gpencil_convert_old_files_exec(), gpencil_editmode_toggle_exec(), gpencil_paintmode_toggle_exec(), gpencil_sculptmode_toggle_exec(), gpencil_vertexmode_toggle_exec(), and gpencil_weightmode_toggle_exec().
bool ED_gpencil_stroke_can_use | ( | const struct bContext * | C, |
const struct bGPDstroke * | gps | ||
) |
bool ED_gpencil_stroke_can_use_direct | ( | const struct ScrArea * | area, |
const struct bGPDstroke * | gps | ||
) |
Check whether given stroke can be edited given the supplied context. TODO: do we need additional flags for screen-space vs data-space?.
bool ED_gpencil_stroke_check_collision | ( | const struct GP_SpaceConversion * | gsc, |
struct bGPDstroke * | gps, | ||
const float | mval[2], | ||
int | radius, | ||
const float | diff_mat[4][4] | ||
) |
Check if the stroke collides with brush.
void ED_gpencil_stroke_close_by_distance | ( | struct bGPDstroke * | gps, |
float | threshold | ||
) |
Close if the distance between extremes is below threshold.
Definition at line 3218 of file gpencil_utils.c.
References BKE_gpencil_stroke_close(), bGPDstroke::flag, GP_STROKE_CYCLIC, len_squared_v3v3(), NULL, bGPDstroke::points, threshold, bGPDstroke::totpoints, and bGPDspoint::x.
Referenced by gpencil_primitive_interaction_end(), and gpencil_stroke_newfrombuffer().
void ED_gpencil_stroke_extremes_to2d | ( | const struct GP_SpaceConversion * | gsc, |
const float | diff_mat[4][4], | ||
struct bGPDstroke * | gps, | ||
float | r_ctrl1[2], | ||
float | r_ctrl2[2] | ||
) |
Get extremes of stroke in 2D using current view.
void ED_gpencil_stroke_init_data | ( | struct bGPDstroke * | gps, |
const float * | array, | ||
int | totpoints, | ||
const float | mat[4][4] | ||
) |
Populate stroke with point data from data buffers.
gps | Grease pencil stroke |
array | Flat array of point data values. Each entry has GP_PRIM_DATABUF_SIZE values. |
totpoints | Total of points |
mat | 4x4 transform matrix to transform points into the right coordinate space. |
Definition at line 28 of file gpencil_add_monkey.c.
References GP_PRIM_DATABUF_SIZE, mul_m4_v3(), bGPDstroke::points, bGPDspoint::pressure, bGPDspoint::strength, x, bGPDspoint::x, bGPDspoint::y, and bGPDspoint::z.
Referenced by ED_gpencil_create_monkey(), and ED_gpencil_create_stroke().
struct bGPDstroke* ED_gpencil_stroke_join_and_trim | ( | struct bGPdata * | gpd, |
struct bGPDframe * | gpf, | ||
struct bGPDstroke * | gps, | ||
struct bGPDstroke * | gps_dst, | ||
int | pt_index | ||
) |
Join two stroke using a contact point index and trimming the rest.
Definition at line 3149 of file gpencil_utils.c.
References BKE_gpencil_free_stroke(), BKE_gpencil_stroke_delete_tagged_points(), BKE_gpencil_stroke_join(), BKE_gpencil_stroke_merge_distance(), BKE_gpencil_stroke_segment_length(), BLI_assert, BLI_remlink(), bGPDspoint::flag, bGPDstroke::flag, GP_SPOINT_SELECT, GP_SPOINT_TAG, GP_STROKE_CYCLIC, GP_STROKE_TAG, bGPDstroke::next, NULL, bGPDstroke::points, bGPDframe::strokes, and bGPDstroke::totpoints.
Referenced by gpencil_primitive_interaction_end(), and gpencil_stroke_newfrombuffer().
bool ED_gpencil_stroke_material_editable | ( | struct Object * | ob, |
const struct bGPDlayer * | gpl, | ||
const struct bGPDstroke * | gps | ||
) |
bool ED_gpencil_stroke_material_visible | ( | struct Object * | ob, |
const struct bGPDstroke * | gps | ||
) |
struct bGPDstroke* ED_gpencil_stroke_nearest_to_ends | ( | struct bContext * | C, |
const struct GP_SpaceConversion * | gsc, | ||
struct bGPDlayer * | gpl, | ||
struct bGPDframe * | gpf, | ||
struct bGPDstroke * | gps, | ||
const float | ctrl1[2], | ||
const float | ctrl2[2], | ||
float | radius, | ||
int * | r_index | ||
) |
bool ED_gpencil_stroke_point_is_inside | ( | const struct bGPDstroke * | gps, |
const struct GP_SpaceConversion * | gsc, | ||
const int | mval[2], | ||
const float | diff_mat[4][4] | ||
) |
Check if a point is inside of the stroke.
gps | Stroke to check. |
gsc | Space conversion data. |
mval | Region relative cursor position. |
diff_mat | View matrix. |
void ED_gpencil_stroke_reproject | ( | struct Depsgraph * | depsgraph, |
const struct GP_SpaceConversion * | gsc, | ||
struct SnapObjectContext * | sctx, | ||
struct bGPDlayer * | gpl, | ||
struct bGPDframe * | gpf, | ||
struct bGPDstroke * | gps, | ||
eGP_ReprojectModes | mode, | ||
bool | keep_original | ||
) |
Reproject selected strokes.
Free copy/paste buffer data.
Definition at line 1416 of file gpencil_edit.c.
References BKE_gpencil_free_stroke_weights(), BLI_freelinkN(), BLI_ghash_free(), bGPDstroke::dvert, ListBase::first, gpencil_strokes_copypastebuf, gpencil_strokes_copypastebuf_colors, ListBase::last, MEM_freeN, MEM_SAFE_FREE, bGPDstroke::next, NULL, bGPDstroke::points, and bGPDstroke::triangles.
Referenced by gpencil_strokes_copy_exec(), and WM_exit_ex().
Tag all scene grease pencil object to update.
Definition at line 2686 of file gpencil_utils.c.
References DEG_id_tag_update(), bGPdata::flag, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, FOREACH_SCENE_COLLECTION_BEGIN, FOREACH_SCENE_COLLECTION_END, GP_DATA_CACHE_IS_DIRTY, bGPdata::id, Scene::id, ID_RECALC_COPY_ON_WRITE, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, NA_EDITED, NC_GPENCIL, NULL, OB_GPENCIL, scene, and WM_main_add_notifier().
Turn brush cursor in on/off.
Definition at line 1919 of file gpencil_utils.c.
References C, CTX_data_scene(), ToolSettings::gp_sculpt, gpencil_brush_cursor_draw(), gpencil_brush_cursor_poll(), NULL, GP_Sculpt_Settings::paintcursor, RGN_TYPE_ANY, scene, SPACE_TYPE_ANY, Scene::toolsettings, WM_paint_cursor_activate(), and WM_paint_cursor_end().
Referenced by ED_editors_init(), ED_gpencil_setup_modes(), ed_undo_step_post(), ed_undo_step_pre(), gpencil_draw_apply(), gpencil_draw_exit(), gpencil_draw_invoke(), gpencil_draw_modal(), gpencil_draw_toggle_eraser_cursor(), and gpencil_guide_event_handling().
void ED_gpencil_tpoint_to_point | ( | struct ARegion * | region, |
float | origin[3], | ||
const struct tGPspoint * | tpt, | ||
struct bGPDspoint * | pt | ||
) |
Convert 2d tGPspoint to 3d bGPDspoint.
Recalculate UV for any stroke using the material.
Definition at line 2049 of file gpencil_utils.c.
References BKE_gpencil_layer_is_editable(), BKE_gpencil_material(), BKE_gpencil_stroke_uv_update(), DEG_id_tag_update(), ED_gpencil_stroke_material_editable(), ListBase::first, bGPdata::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, bGPdata::layers, LISTBASE_FOREACH, NULL, OB_GPENCIL, and Main::objects.
Assign points to vertex group.
Definition at line 1445 of file gpencil_utils.c.
References BKE_defvert_ensure_index(), BKE_gpencil_dvert_ensure(), BLI_findlink(), C, CTX_DATA_BEGIN, CTX_DATA_END, Object::data, ED_gpencil_stroke_can_use(), bGPDspoint::flag, GP_FRAME_SELECT, GP_SPOINT_SELECT, GP_STROKE_SELECT, GPENCIL_MULTIEDIT_SESSIONS_ON, bGPDframe::next, NULL, bGPdata::vertex_group_active_index, bGPdata::vertex_group_names, and MDeformWeight::weight.
Referenced by gpencil_vertex_group_assign_exec().
Un-select points of vertex group.
Definition at line 1604 of file gpencil_utils.c.
References BKE_defvert_find_index(), BLI_findlink(), C, CTX_DATA_BEGIN, CTX_DATA_END, Object::data, ED_gpencil_stroke_can_use(), bGPDspoint::flag, GP_FRAME_SELECT, GP_SPOINT_SELECT, GPENCIL_MULTIEDIT_SESSIONS_ON, bGPDframe::next, NULL, bGPdata::vertex_group_active_index, and bGPdata::vertex_group_names.
Referenced by gpencil_vertex_group_deselect_exec().
Remove points from vertex group.
Definition at line 1498 of file gpencil_utils.c.
References BKE_defvert_find_index(), BKE_defvert_remove_group(), BLI_findlink(), C, CTX_DATA_BEGIN, CTX_DATA_END, Object::data, ED_gpencil_stroke_can_use(), bGPDspoint::flag, GP_FRAME_SELECT, GP_SPOINT_SELECT, GPENCIL_MULTIEDIT_SESSIONS_ON, bGPDframe::next, NULL, MDeformVert::totweight, bGPdata::vertex_group_active_index, and bGPdata::vertex_group_names.
Referenced by gpencil_vertex_group_remove_from_exec().
Select points of vertex group.
Definition at line 1550 of file gpencil_utils.c.
References BKE_defvert_find_index(), BKE_gpencil_stroke_select_index_set(), BLI_findlink(), C, CTX_DATA_BEGIN, CTX_DATA_END, Object::data, ED_gpencil_stroke_can_use(), bGPDspoint::flag, GP_FRAME_SELECT, GP_SPOINT_SELECT, GP_STROKE_SELECT, GPENCIL_MULTIEDIT_SESSIONS_ON, bGPDframe::next, NULL, bGPdata::vertex_group_active_index, and bGPdata::vertex_group_names.
Referenced by gpencil_vertex_group_select_exec().
void ED_keymap_gpencil | ( | struct wmKeyConfig * | keyconf | ) |
Definition at line 466 of file gpencil_ops.c.
References ed_keymap_gpencil_curve_editing(), ed_keymap_gpencil_editing(), ed_keymap_gpencil_general(), ed_keymap_gpencil_painting(), ed_keymap_gpencil_painting_draw(), ed_keymap_gpencil_painting_erase(), ed_keymap_gpencil_painting_fill(), ed_keymap_gpencil_painting_tint(), ed_keymap_gpencil_sculpting(), ed_keymap_gpencil_sculptpainting_clone(), ed_keymap_gpencil_sculptpainting_grab(), ed_keymap_gpencil_sculptpainting_pinch(), ed_keymap_gpencil_sculptpainting_push(), ed_keymap_gpencil_sculptpainting_randomize(), ed_keymap_gpencil_sculptpainting_smooth(), ed_keymap_gpencil_sculptpainting_strength(), ed_keymap_gpencil_sculptpainting_thickness(), ed_keymap_gpencil_sculptpainting_twist(), ed_keymap_gpencil_vertexpainting(), ed_keymap_gpencil_vertexpainting_average(), ed_keymap_gpencil_vertexpainting_blur(), ed_keymap_gpencil_vertexpainting_draw(), ed_keymap_gpencil_vertexpainting_replace(), ed_keymap_gpencil_vertexpainting_smear(), ed_keymap_gpencil_weightpainting(), and ed_keymap_gpencil_weightpainting_draw().
Referenced by ED_spacetypes_keymap().
Definition at line 5348 of file gpencil_edit.c.
References Object::data, DEG_id_tag_update_ex(), bGPdata::flag, GP_DATA_STROKE_EDITMODE, GP_DATA_STROKE_PAINTMODE, GP_DATA_STROKE_SCULPTMODE, GP_DATA_STROKE_VERTEXMODE, GP_DATA_STROKE_WEIGHTMODE, Object::id, ID_RECALC_COPY_ON_WRITE, Object::mode, OB_MODE_EDIT_GPENCIL, OB_MODE_PAINT_GPENCIL, OB_MODE_SCULPT_GPENCIL, OB_MODE_VERTEX_GPENCIL, OB_MODE_WEIGHT_GPENCIL, and Object::restore_mode.
Referenced by ed_object_mode_generic_exit_ex().
Definition at line 690 of file gpencil_ops.c.
References OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorTypeMacro::ptr, RNA_boolean_set(), WM_operatortype_append_macro(), and WM_operatortype_macro_define().
Referenced by ED_spacemacros_init().
Definition at line 498 of file gpencil_ops.c.
References GPENCIL_OT_active_frame_delete(), GPENCIL_OT_active_frames_delete_all(), GPENCIL_OT_annotate(), GPENCIL_OT_annotation_active_frame_delete(), GPENCIL_OT_annotation_add(), GPENCIL_OT_bake_grease_pencil_animation(), GPENCIL_OT_bake_mesh_animation(), GPENCIL_OT_blank_frame_add(), GPENCIL_OT_brush_reset(), GPENCIL_OT_brush_reset_all(), GPENCIL_OT_convert(), GPENCIL_OT_convert_old_files(), GPENCIL_OT_copy(), GPENCIL_OT_data_unlink(), GPENCIL_OT_delete(), GPENCIL_OT_dissolve(), GPENCIL_OT_draw(), GPENCIL_OT_duplicate(), GPENCIL_OT_editmode_toggle(), GPENCIL_OT_extract_palette_vertex(), GPENCIL_OT_extrude(), GPENCIL_OT_fill(), GPENCIL_OT_frame_clean_duplicate(), GPENCIL_OT_frame_clean_fill(), GPENCIL_OT_frame_clean_loose(), GPENCIL_OT_frame_duplicate(), GPENCIL_OT_generate_weights(), GPENCIL_OT_guide_rotate(), GPENCIL_OT_hide(), GPENCIL_OT_image_to_grease_pencil(), GPENCIL_OT_interpolate(), GPENCIL_OT_interpolate_reverse(), GPENCIL_OT_interpolate_sequence(), GPENCIL_OT_layer_active(), GPENCIL_OT_layer_add(), GPENCIL_OT_layer_annotation_add(), GPENCIL_OT_layer_annotation_move(), GPENCIL_OT_layer_annotation_remove(), GPENCIL_OT_layer_change(), GPENCIL_OT_layer_duplicate(), GPENCIL_OT_layer_duplicate_object(), GPENCIL_OT_layer_isolate(), GPENCIL_OT_layer_mask_add(), GPENCIL_OT_layer_mask_move(), GPENCIL_OT_layer_mask_remove(), GPENCIL_OT_layer_merge(), GPENCIL_OT_layer_move(), GPENCIL_OT_layer_remove(), GPENCIL_OT_lock_all(), GPENCIL_OT_lock_layer(), GPENCIL_OT_material_hide(), GPENCIL_OT_material_isolate(), GPENCIL_OT_material_lock_all(), GPENCIL_OT_material_lock_unused(), GPENCIL_OT_material_reveal(), GPENCIL_OT_material_select(), GPENCIL_OT_material_set(), GPENCIL_OT_material_to_vertex_color(), GPENCIL_OT_material_unlock_all(), GPENCIL_OT_materials_copy_to_object(), GPENCIL_OT_move_to_layer(), GPENCIL_OT_paintmode_toggle(), GPENCIL_OT_paste(), GPENCIL_OT_primitive_box(), GPENCIL_OT_primitive_circle(), GPENCIL_OT_primitive_curve(), GPENCIL_OT_primitive_line(), GPENCIL_OT_primitive_polyline(), GPENCIL_OT_recalc_geometry(), GPENCIL_OT_reproject(), GPENCIL_OT_reset_transform_fill(), GPENCIL_OT_reveal(), GPENCIL_OT_sculpt_paint(), GPENCIL_OT_sculptmode_toggle(), GPENCIL_OT_select(), GPENCIL_OT_select_all(), GPENCIL_OT_select_alternate(), GPENCIL_OT_select_box(), GPENCIL_OT_select_circle(), GPENCIL_OT_select_first(), GPENCIL_OT_select_grouped(), GPENCIL_OT_select_lasso(), GPENCIL_OT_select_last(), GPENCIL_OT_select_less(), GPENCIL_OT_select_linked(), GPENCIL_OT_select_more(), GPENCIL_OT_select_random(), GPENCIL_OT_select_vertex_color(), GPENCIL_OT_selection_opacity_toggle(), GPENCIL_OT_selectmode_toggle(), GPENCIL_OT_set_active_material(), GPENCIL_OT_snap_cursor_to_selected(), GPENCIL_OT_snap_to_cursor(), GPENCIL_OT_snap_to_grid(), GPENCIL_OT_stroke_apply_thickness(), GPENCIL_OT_stroke_arrange(), GPENCIL_OT_stroke_caps_set(), GPENCIL_OT_stroke_change_color(), GPENCIL_OT_stroke_cutter(), GPENCIL_OT_stroke_cyclical_set(), GPENCIL_OT_stroke_editcurve_set_handle_type(), GPENCIL_OT_stroke_enter_editcurve_mode(), GPENCIL_OT_stroke_flip(), GPENCIL_OT_stroke_join(), GPENCIL_OT_stroke_merge(), GPENCIL_OT_stroke_merge_by_distance(), GPENCIL_OT_stroke_merge_material(), GPENCIL_OT_stroke_normalize(), GPENCIL_OT_stroke_reset_vertex_color(), GPENCIL_OT_stroke_sample(), GPENCIL_OT_stroke_separate(), GPENCIL_OT_stroke_simplify(), GPENCIL_OT_stroke_simplify_fixed(), GPENCIL_OT_stroke_smooth(), GPENCIL_OT_stroke_split(), GPENCIL_OT_stroke_subdivide(), GPENCIL_OT_stroke_trim(), GPENCIL_OT_trace_image(), GPENCIL_OT_transform_fill(), GPENCIL_OT_unlock_all(), GPENCIL_OT_vertex_color_brightness_contrast(), GPENCIL_OT_vertex_color_hsv(), GPENCIL_OT_vertex_color_invert(), GPENCIL_OT_vertex_color_levels(), GPENCIL_OT_vertex_color_set(), GPENCIL_OT_vertex_group_assign(), GPENCIL_OT_vertex_group_deselect(), GPENCIL_OT_vertex_group_invert(), GPENCIL_OT_vertex_group_normalize(), GPENCIL_OT_vertex_group_normalize_all(), GPENCIL_OT_vertex_group_remove_from(), GPENCIL_OT_vertex_group_select(), GPENCIL_OT_vertex_group_smooth(), GPENCIL_OT_vertex_paint(), GPENCIL_OT_vertexmode_toggle(), GPENCIL_OT_weight_paint(), GPENCIL_OT_weightmode_toggle(), and WM_operatortype_append().
Referenced by ED_spacetypes_init().
int ED_undo_gpencil_step | ( | struct bContext * | C, |
int | step | ||
) |
step | eUndoStepDir. |
Definition at line 49 of file gpencil_undo.c.
References BKE_gpencil_free_layers(), BKE_gpencil_layer_duplicate(), BLI_addtail(), BLI_listbase_clear(), C, cur_node, DEG_id_tag_update(), ED_gpencil_data_get_pointers(), GP_DATA_CACHE_IS_DIRTY, bGPundonode::gpd, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, bGPdata::layers, LISTBASE_FOREACH, NA_EDITED, NC_GPENCIL, bGPundonode::next, NULL, OPERATOR_FINISHED, bGPundonode::prev, STEP_REDO, STEP_UNDO, and WM_event_add_notifier().
Referenced by ed_undo_step_direction().