Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
gpencil_vertex_paint.c File Reference
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLT_translation.h"
#include "DNA_brush_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_material_types.h"
#include "BKE_brush.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_gpencil.h"
#include "BKE_material.h"
#include "BKE_report.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_prototypes.h"
#include "UI_view2d.h"
#include "ED_gpencil.h"
#include "ED_screen.h"
#include "ED_view3d.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "gpencil_intern.h"

Go to the source code of this file.

Classes

struct  tGP_Grid
 
struct  tGP_Selected
 
struct  tGP_BrushVertexpaintData
 

Macros

#define GP_SELECT_BUFFER_CHUNK   256
 
#define GP_GRID_PIXEL_SIZE   10.0f
 

Typedefs

typedef enum eGPDvertex_brush_Flag eGPDvertex_brush_Flag
 
typedef struct tGP_Grid tGP_Grid
 
typedef struct tGP_Selected tGP_Selected
 
typedef struct tGP_BrushVertexpaintData tGP_BrushVertexpaintData
 

Enumerations

enum  eGPDvertex_brush_Flag { GP_VERTEX_FLAG_INVERT = (1 << 0) , GP_VERTEX_FLAG_TMP_INVERT = (1 << 1) }
 

Functions

static tGP_Selectedgpencil_select_buffer_ensure (tGP_Selected *buffer_array, int *buffer_size, int *buffer_used, const bool clear)
 
static bool brush_invert_check (tGP_BrushVertexpaintData *gso)
 
static float brush_influence_calc (tGP_BrushVertexpaintData *gso, const int radius, const int co[2])
 
static void brush_calc_dvec_2d (tGP_BrushVertexpaintData *gso)
 
static void gpencil_grid_cells_init (tGP_BrushVertexpaintData *gso)
 
static void gpencil_grid_cell_average_color_idx_get (tGP_BrushVertexpaintData *gso, int r_idx[2])
 
static int gpencil_grid_cell_index_get (tGP_BrushVertexpaintData *gso, const int pc[2])
 
static void gpencil_grid_colors_calc (tGP_BrushVertexpaintData *gso)
 
static bool brush_tint_apply (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int pt_index, const int radius, const int co[2])
 
static bool brush_replace_apply (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int pt_index)
 
static bool get_surrounding_color (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int pt_index, float r_color[3])
 
static bool brush_blur_apply (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int pt_index, const int radius, const int co[2])
 
static bool brush_average_apply (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int pt_index, const int radius, const int co[2], float average_color[3])
 
static bool brush_smear_apply (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int pt_index, tGP_Selected *selected)
 
static void gpencil_vertexpaint_brush_header_set (bContext *C)
 
static bool gpencil_vertexpaint_brush_init (bContext *C, wmOperator *op)
 
static void gpencil_vertexpaint_brush_exit (bContext *C, wmOperator *op)
 
static bool gpencil_vertexpaint_brush_poll (bContext *C)
 
static void gpencil_save_selected_point (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, int index, int pc[2])
 
static bool gpencil_vertexpaint_select_stroke (tGP_BrushVertexpaintData *gso, bGPDstroke *gps, const char tool, const float diff_mat[4][4], const float bound_mat[4][4])
 
static bool gpencil_vertexpaint_brush_do_frame (bContext *C, tGP_BrushVertexpaintData *gso, bGPDlayer *gpl, bGPDframe *gpf, const float diff_mat[4][4], const float bound_mat[4][4])
 
static bool gpencil_vertexpaint_brush_apply_to_layers (bContext *C, tGP_BrushVertexpaintData *gso)
 
static void gpencil_vertexpaint_brush_apply (bContext *C, wmOperator *op, PointerRNA *itemptr)
 
static void gpencil_vertexpaint_brush_apply_event (bContext *C, wmOperator *op, const wmEvent *event)
 
static int gpencil_vertexpaint_brush_exec (bContext *C, wmOperator *op)
 
static int gpencil_vertexpaint_brush_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int gpencil_vertexpaint_brush_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
void GPENCIL_OT_vertex_paint (wmOperatorType *ot)
 

Detailed Description

Brush based operators for editing Grease Pencil strokes.

Definition in file gpencil_vertex_paint.c.

Macro Definition Documentation

◆ GP_GRID_PIXEL_SIZE

#define GP_GRID_PIXEL_SIZE   10.0f

Definition at line 48 of file gpencil_vertex_paint.c.

◆ GP_SELECT_BUFFER_CHUNK

#define GP_SELECT_BUFFER_CHUNK   256

Definition at line 47 of file gpencil_vertex_paint.c.

Typedef Documentation

◆ eGPDvertex_brush_Flag

◆ tGP_BrushVertexpaintData

◆ tGP_Grid

typedef struct tGP_Grid tGP_Grid

◆ tGP_Selected

typedef struct tGP_Selected tGP_Selected

Enumeration Type Documentation

◆ eGPDvertex_brush_Flag

Enumerator
GP_VERTEX_FLAG_INVERT 
GP_VERTEX_FLAG_TMP_INVERT 

Definition at line 51 of file gpencil_vertex_paint.c.

Function Documentation

◆ brush_average_apply()

static bool brush_average_apply ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  pt_index,
const int  radius,
const int  co[2],
float  average_color[3] 
)
static

◆ brush_blur_apply()

static bool brush_blur_apply ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  pt_index,
const int  radius,
const int  co[2] 
)
static

◆ brush_calc_dvec_2d()

static void brush_calc_dvec_2d ( tGP_BrushVertexpaintData gso)
static

◆ brush_influence_calc()

static float brush_influence_calc ( tGP_BrushVertexpaintData gso,
const int  radius,
const int  co[2] 
)
static

◆ brush_invert_check()

static bool brush_invert_check ( tGP_BrushVertexpaintData gso)
static

◆ brush_replace_apply()

static bool brush_replace_apply ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  pt_index 
)
static

◆ brush_smear_apply()

static bool brush_smear_apply ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  pt_index,
tGP_Selected selected 
)
static

◆ brush_tint_apply()

static bool brush_tint_apply ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  pt_index,
const int  radius,
const int  co[2] 
)
static

◆ get_surrounding_color()

static bool get_surrounding_color ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  pt_index,
float  r_color[3] 
)
static

◆ gpencil_grid_cell_average_color_idx_get()

static void gpencil_grid_cell_average_color_idx_get ( tGP_BrushVertexpaintData gso,
int  r_idx[2] 
)
static

Definition at line 287 of file gpencil_vertex_paint.c.

References tGP_BrushVertexpaintData::dvec.

Referenced by brush_smear_apply().

◆ gpencil_grid_cell_index_get()

static int gpencil_grid_cell_index_get ( tGP_BrushVertexpaintData gso,
const int  pc[2] 
)
static

◆ gpencil_grid_cells_init()

static void gpencil_grid_cells_init ( tGP_BrushVertexpaintData gso)
static

◆ gpencil_grid_colors_calc()

static void gpencil_grid_colors_calc ( tGP_BrushVertexpaintData gso)
static

◆ GPENCIL_OT_vertex_paint()

void GPENCIL_OT_vertex_paint ( wmOperatorType ot)

◆ gpencil_save_selected_point()

static void gpencil_save_selected_point ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
int  index,
int  pc[2] 
)
static

◆ gpencil_select_buffer_ensure()

static tGP_Selected* gpencil_select_buffer_ensure ( tGP_Selected buffer_array,
int *  buffer_size,
int *  buffer_used,
const bool  clear 
)
static

◆ gpencil_vertexpaint_brush_apply()

static void gpencil_vertexpaint_brush_apply ( bContext C,
wmOperator op,
PointerRNA itemptr 
)
static

◆ gpencil_vertexpaint_brush_apply_event()

static void gpencil_vertexpaint_brush_apply_event ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ gpencil_vertexpaint_brush_apply_to_layers()

static bool gpencil_vertexpaint_brush_apply_to_layers ( bContext C,
tGP_BrushVertexpaintData gso 
)
static

◆ gpencil_vertexpaint_brush_do_frame()

static bool gpencil_vertexpaint_brush_do_frame ( bContext C,
tGP_BrushVertexpaintData gso,
bGPDlayer gpl,
bGPDframe gpf,
const float  diff_mat[4][4],
const float  bound_mat[4][4] 
)
static

◆ gpencil_vertexpaint_brush_exec()

static int gpencil_vertexpaint_brush_exec ( bContext C,
wmOperator op 
)
static

◆ gpencil_vertexpaint_brush_exit()

static void gpencil_vertexpaint_brush_exit ( bContext C,
wmOperator op 
)
static

◆ gpencil_vertexpaint_brush_header_set()

static void gpencil_vertexpaint_brush_header_set ( bContext C)
static

Definition at line 687 of file gpencil_vertex_paint.c.

References C, ED_workspace_status_text(), and TIP_.

Referenced by gpencil_vertexpaint_brush_init().

◆ gpencil_vertexpaint_brush_init()

static bool gpencil_vertexpaint_brush_init ( bContext C,
wmOperator op 
)
static

Definition at line 699 of file gpencil_vertex_paint.c.

References BKE_curvemapping_init(), bool, tGP_BrushVertexpaintData::brush, Paint::brush, C, CTX_data_active_object(), CTX_data_scene(), CTX_data_tool_settings(), CTX_wm_region(), GP_Sculpt_Settings::cur_falloff, Brush::curve, wmOperator::customdata, ED_gpencil_data_get_active(), tGP_BrushVertexpaintData::first, GP_Sculpt_Settings::flag, GP_GRID_PIXEL_SIZE, ToolSettings::gp_paint, ToolSettings::gp_sculpt, GP_SCULPT_SETT_FLAG_FRAME_FALLOFF, ToolSettings::gp_vertexpaint, tGP_BrushVertexpaintData::gpd, GPENCIL_MULTIEDIT_SESSIONS_ON, gpencil_point_conversion_init(), ToolSettings::gpencil_selectmode_vertex, gpencil_vertexpaint_brush_header_set(), tGP_BrushVertexpaintData::grid, tGP_BrushVertexpaintData::grid_len, tGP_BrushVertexpaintData::grid_ready, tGP_BrushVertexpaintData::grid_size, tGP_BrushVertexpaintData::gsc, tGP_BrushVertexpaintData::is_multiframe, tGP_BrushVertexpaintData::is_painting, tGP_BrushVertexpaintData::linear_color, tGP_BrushVertexpaintData::mask, MEM_callocN, Object::mode, NULL, OB_MODE_VERTEX_GPENCIL, tGP_BrushVertexpaintData::object, GpPaint::paint, GpVertexPaint::paint, tGP_BrushVertexpaintData::pbuffer, tGP_BrushVertexpaintData::pbuffer_size, tGP_BrushVertexpaintData::pbuffer_used, tGP_BrushVertexpaintData::region, Brush::rgb, scene, tGP_BrushVertexpaintData::scene, Brush::size, srgb_to_linearrgb_v3_v3(), and tGP_BrushVertexpaintData::use_multiframe_falloff.

Referenced by gpencil_vertexpaint_brush_exec(), and gpencil_vertexpaint_brush_invoke().

◆ gpencil_vertexpaint_brush_invoke()

static int gpencil_vertexpaint_brush_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ gpencil_vertexpaint_brush_modal()

static int gpencil_vertexpaint_brush_modal ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ gpencil_vertexpaint_brush_poll()

static bool gpencil_vertexpaint_brush_poll ( bContext C)
static

Definition at line 778 of file gpencil_vertex_paint.c.

References C, and CTX_DATA_COUNT.

Referenced by GPENCIL_OT_vertex_paint().

◆ gpencil_vertexpaint_select_stroke()

static bool gpencil_vertexpaint_select_stroke ( tGP_BrushVertexpaintData gso,
bGPDstroke gps,
const char  tool,
const float  diff_mat[4][4],
const float  bound_mat[4][4] 
)
static