Blender V5.0
BKE_mask.h File Reference

Go to the source code of this file.

Enumerations

enum  eMaskWhichHandle {
  MASK_WHICH_HANDLE_NONE = 0 , MASK_WHICH_HANDLE_STICK = 1 , MASK_WHICH_HANDLE_LEFT = 2 , MASK_WHICH_HANDLE_RIGHT = 3 ,
  MASK_WHICH_HANDLE_BOTH = 4
}
enum  eMaskhandleMode { MASK_HANDLE_MODE_STICK = 1 , MASK_HANDLE_MODE_INDIVIDUAL_HANDLES = 2 }

Functions

Mask Layers
struct MaskLayerBKE_mask_layer_new (struct Mask *mask, const char *name)
struct MaskLayerBKE_mask_layer_active (struct Mask *mask)
void BKE_mask_layer_active_set (struct Mask *mask, struct MaskLayer *masklay)
void BKE_mask_layer_remove (struct Mask *mask, struct MaskLayer *masklay)
void BKE_mask_layer_free_shapes (struct MaskLayer *masklay)
 Free all animation keys for a mask layer.
void BKE_mask_layer_free (struct MaskLayer *masklay)
void BKE_mask_layer_free_list (struct ListBase *masklayers)
void BKE_mask_spline_free (struct MaskSpline *spline)
void BKE_mask_spline_free_list (struct ListBase *splines)
struct MaskSplineBKE_mask_spline_copy (const struct MaskSpline *spline)
void BKE_mask_point_free (struct MaskSplinePoint *point)
void BKE_mask_layer_unique_name (struct Mask *mask, struct MaskLayer *masklay)
void BKE_mask_layer_rename (struct Mask *mask, struct MaskLayer *masklay, const char *oldname, const char *newname)
struct MaskLayerBKE_mask_layer_copy (const struct MaskLayer *masklay)
void BKE_mask_layer_copy_list (struct ListBase *masklayers_new, const struct ListBase *masklayers)
Point
eMaskhandleMode BKE_mask_point_handles_mode_get (const struct MaskSplinePoint *point)
void BKE_mask_point_handle (const struct MaskSplinePoint *point, eMaskWhichHandle which_handle, float r_handle[2])
void BKE_mask_point_set_handle (struct MaskSplinePoint *point, eMaskWhichHandle which_handle, float loc[2], bool keep_direction, float orig_handle[2], float orig_vec[3][3])
void BKE_mask_point_segment_co (struct MaskSpline *spline, struct MaskSplinePoint *point, float u, float co[2])
void BKE_mask_point_normal (struct MaskSpline *spline, struct MaskSplinePoint *point, float u, float n[2])
float BKE_mask_point_weight_scalar (struct MaskSpline *spline, struct MaskSplinePoint *point, float u)
float BKE_mask_point_weight (struct MaskSpline *spline, struct MaskSplinePoint *point, float u)
struct MaskSplinePointUWBKE_mask_point_sort_uw (struct MaskSplinePoint *point, struct MaskSplinePointUW *uw)
void BKE_mask_point_add_uw (struct MaskSplinePoint *point, float u, float w)
void BKE_mask_point_select_set (struct MaskSplinePoint *point, bool do_select)
void BKE_mask_point_select_set_handle (struct MaskSplinePoint *point, eMaskWhichHandle which_handle, bool do_select)
General
struct MaskBKE_mask_new (struct Main *bmain, const char *name)
void BKE_mask_coord_from_frame (float r_co[2], const float co[2], const float frame_size[2])
void BKE_mask_coord_from_movieclip (struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
void BKE_mask_coord_from_image (struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2])
void BKE_mask_coord_to_frame (float r_co[2], const float co[2], const float frame_size[2])
void BKE_mask_coord_to_movieclip (struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
void BKE_mask_coord_to_image (struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2])
Parenting
void BKE_mask_evaluate (struct Mask *mask, float ctime, bool do_newframe)
void BKE_mask_layer_evaluate (struct MaskLayer *masklay, float ctime, bool do_newframe)
void BKE_mask_parent_init (struct MaskParent *parent)
void BKE_mask_calc_handle_adjacent_interp (struct MaskSpline *spline, struct MaskSplinePoint *point, float u)
void BKE_mask_calc_tangent_polyline (struct MaskSpline *spline, struct MaskSplinePoint *point, float t[2])
void BKE_mask_calc_handle_point (struct MaskSpline *spline, struct MaskSplinePoint *point)
void BKE_mask_calc_handle_point_auto (struct MaskSpline *spline, struct MaskSplinePoint *point, bool do_recalc_length)
 Resets auto handles even for non-auto bezier points.
void BKE_mask_get_handle_point_adjacent (struct MaskSpline *spline, struct MaskSplinePoint *point, struct MaskSplinePoint **r_point_prev, struct MaskSplinePoint **r_point_next)
void BKE_mask_layer_calc_handles (struct MaskLayer *masklay)
void BKE_mask_spline_ensure_deform (struct MaskSpline *spline)
void BKE_mask_point_parent_matrix_get (struct MaskSplinePoint *point, float ctime, float parent_matrix[3][3])
Animation
int BKE_mask_layer_shape_totvert (struct MaskLayer *masklay)
void BKE_mask_layer_shape_from_mask (struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
void BKE_mask_layer_shape_to_mask (struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
void BKE_mask_layer_shape_to_mask_interp (struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape_a, struct MaskLayerShape *masklay_shape_b, float fac)
struct MaskLayerShapeBKE_mask_layer_shape_find_frame (struct MaskLayer *masklay, int frame)
int BKE_mask_layer_shape_find_frame_range (struct MaskLayer *masklay, float frame, struct MaskLayerShape **r_masklay_shape_a, struct MaskLayerShape **r_masklay_shape_b)
struct MaskLayerShapeBKE_mask_layer_shape_alloc (struct MaskLayer *masklay, int frame)
void BKE_mask_layer_shape_free (struct MaskLayerShape *masklay_shape)
struct MaskLayerShapeBKE_mask_layer_shape_verify_frame (struct MaskLayer *masklay, int frame)
struct MaskLayerShapeBKE_mask_layer_shape_duplicate (struct MaskLayerShape *masklay_shape)
void BKE_mask_layer_shape_unlink (struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
void BKE_mask_layer_shape_sort (struct MaskLayer *masklay)
bool BKE_mask_layer_shape_spline_from_index (struct MaskLayer *masklay, int index, struct MaskSpline **r_masklay_shape, int *r_index)
int BKE_mask_layer_shape_spline_to_index (struct MaskLayer *masklay, struct MaskSpline *spline)
void BKE_mask_layer_shape_changed_add (struct MaskLayer *masklay, int index, bool do_init, bool do_init_interpolate)
void BKE_mask_layer_shape_changed_remove (struct MaskLayer *masklay, int index, int count)
int BKE_mask_get_duration (struct Mask *mask)

Clipboard

#define MASKPOINT_ISSEL_ANY(p)
#define MASKPOINT_ISSEL_KNOT(p)
#define MASKPOINT_ISSEL_HANDLE(point, which_handle)
#define MASKPOINT_SEL_ALL(p)
#define MASKPOINT_DESEL_ALL(p)
#define MASKPOINT_INVSEL_ALL(p)
void BKE_mask_clipboard_free (void)
void BKE_mask_clipboard_copy_from_layer (struct MaskLayer *mask_layer)
bool BKE_mask_clipboard_is_empty (void)
void BKE_mask_clipboard_paste_to_layer (struct Main *bmain, struct MaskLayer *mask_layer)

Evaluation

#define MASK_RESOL_MAX   128
int BKE_mask_spline_resolution (struct MaskSpline *spline, int width, int height)
unsigned int BKE_mask_spline_feather_resolution (struct MaskSpline *spline, int width, int height)
int BKE_mask_spline_differentiate_calc_total (const struct MaskSpline *spline, unsigned int resol)
float(* BKE_mask_spline_differentiate_with_resolution (struct MaskSpline *spline, unsigned int resol, unsigned int *r_tot_diff_point))[2]
void BKE_mask_spline_feather_collapse_inner_loops (struct MaskSpline *spline, float(*feather_points)[2], unsigned int tot_feather_point)
float(* BKE_mask_spline_differentiate (struct MaskSpline *spline, int width, int height, unsigned int *r_tot_diff_point))[2]
float(* BKE_mask_spline_feather_differentiated_points_with_resolution (struct MaskSpline *spline, unsigned int resol, bool do_feather_isect, unsigned int *r_tot_feather_point))[2]
float(* BKE_mask_spline_feather_points (struct MaskSpline *spline, int *tot_feather_point))[2]
floatBKE_mask_point_segment_diff (struct MaskSpline *spline, struct MaskSplinePoint *point, int width, int height, unsigned int *r_tot_diff_point)
floatBKE_mask_point_segment_feather_diff (struct MaskSpline *spline, struct MaskSplinePoint *point, int width, int height, unsigned int *r_tot_feather_point)
void BKE_mask_layer_evaluate_animation (struct MaskLayer *masklay, float ctime)
void BKE_mask_layer_evaluate_deform (struct MaskLayer *masklay, float ctime)
void BKE_mask_eval_animation (struct Depsgraph *depsgraph, struct Mask *mask)
void BKE_mask_eval_update (struct Depsgraph *depsgraph, struct Mask *mask)

Splines

enum  eMaskSign { MASK_PROJ_NEG = -1 , MASK_PROJ_ANY = 0 , MASK_PROJ_POS = 1 }
struct MaskSplinePointBKE_mask_spline_point_array (struct MaskSpline *spline)
struct MaskSplinePointBKE_mask_spline_point_array_from_point (struct MaskSpline *spline, const struct MaskSplinePoint *point_ref)
struct MaskSplineBKE_mask_spline_add (struct MaskLayer *masklay)
bool BKE_mask_spline_remove (struct MaskLayer *mask_layer, struct MaskSpline *spline)
void BKE_mask_point_direction_switch (struct MaskSplinePoint *point)
void BKE_mask_spline_direction_switch (struct MaskLayer *masklay, struct MaskSpline *spline)
struct BezTripleBKE_mask_spline_point_next_bezt (struct MaskSpline *spline, struct MaskSplinePoint *points_array, struct MaskSplinePoint *point)
float BKE_mask_spline_project_co (struct MaskSpline *spline, struct MaskSplinePoint *point, float start_u, const float co[2], eMaskSign sign)

Rasterization

typedef struct MaskRasterHandle MaskRasterHandle
MaskRasterHandleBKE_maskrasterize_handle_new (void)
void BKE_maskrasterize_handle_free (MaskRasterHandle *mr_handle)
void BKE_maskrasterize_handle_init (MaskRasterHandle *mr_handle, struct Mask *mask, int width, int height, bool do_aspect_correct, bool do_mask_aa, bool do_feather)
float BKE_maskrasterize_handle_sample (MaskRasterHandle *mr_handle, const float xy[2])
void BKE_maskrasterize_buffer (MaskRasterHandle *mr_handle, unsigned int width, unsigned int height, float *buffer)
 Rasterize a buffer from a single mask (threaded execution).

Macro Definition Documentation

◆ MASK_RESOL_MAX

#define MASK_RESOL_MAX   128

Definition at line 329 of file BKE_mask.h.

Referenced by BKE_mask_spline_feather_resolution(), and BKE_mask_spline_resolution().

◆ MASKPOINT_DESEL_ALL

#define MASKPOINT_DESEL_ALL ( p)
Value:
{ \
(p)->bezt.f1 &= ~SELECT; \
(p)->bezt.f2 &= ~SELECT; \
(p)->bezt.f3 &= ~SELECT; \
} \
(void)0
#define SELECT

Definition at line 308 of file BKE_mask.h.

Referenced by add_vertex_extrude(), and BKE_mask_point_select_set().

◆ MASKPOINT_INVSEL_ALL

#define MASKPOINT_INVSEL_ALL ( p)
Value:
{ \
(p)->bezt.f1 ^= SELECT; \
(p)->bezt.f2 ^= SELECT; \
(p)->bezt.f3 ^= SELECT; \
} \
(void)0

Definition at line 315 of file BKE_mask.h.

◆ MASKPOINT_ISSEL_ANY

◆ MASKPOINT_ISSEL_HANDLE

#define MASKPOINT_ISSEL_HANDLE ( point,
which_handle )
Value:
((((which_handle) == MASK_WHICH_HANDLE_STICK) ? \
((((point)->bezt.f1 | (point)->bezt.f3) & SELECT)) : \
(((which_handle) == MASK_WHICH_HANDLE_LEFT) ? ((point)->bezt.f1 & SELECT) : \
((point)->bezt.f3 & SELECT))) != 0)
@ MASK_WHICH_HANDLE_LEFT
Definition BKE_mask.h:31
@ MASK_WHICH_HANDLE_STICK
Definition BKE_mask.h:30

Definition at line 295 of file BKE_mask.h.

Referenced by draw_single_handle(), and select_exec().

◆ MASKPOINT_ISSEL_KNOT

#define MASKPOINT_ISSEL_KNOT ( p)

◆ MASKPOINT_SEL_ALL

#define MASKPOINT_SEL_ALL ( p)
Value:
{ \
(p)->bezt.f1 |= SELECT; \
(p)->bezt.f2 |= SELECT; \
(p)->bezt.f3 |= SELECT; \
} \
(void)0

Definition at line 301 of file BKE_mask.h.

Referenced by BKE_mask_point_select_set(), and setup_vertex_point().

Typedef Documentation

◆ MaskRasterHandle

typedef struct MaskRasterHandle MaskRasterHandle

Definition at line 388 of file BKE_mask.h.

Enumeration Type Documentation

◆ eMaskhandleMode

Enumerator
MASK_HANDLE_MODE_STICK 
MASK_HANDLE_MODE_INDIVIDUAL_HANDLES 

Definition at line 36 of file BKE_mask.h.

◆ eMaskSign

enum eMaskSign
Enumerator
MASK_PROJ_NEG 
MASK_PROJ_ANY 
MASK_PROJ_POS 

Definition at line 90 of file BKE_mask.h.

◆ eMaskWhichHandle

Enumerator
MASK_WHICH_HANDLE_NONE 
MASK_WHICH_HANDLE_STICK 
MASK_WHICH_HANDLE_LEFT 
MASK_WHICH_HANDLE_RIGHT 
MASK_WHICH_HANDLE_BOTH 

Definition at line 28 of file BKE_mask.h.

Function Documentation

◆ BKE_mask_calc_handle_adjacent_interp()

void BKE_mask_calc_handle_adjacent_interp ( struct MaskSpline * spline,
struct MaskSplinePoint * point,
float u )

◆ BKE_mask_calc_handle_point()

void BKE_mask_calc_handle_point ( struct MaskSpline * spline,
struct MaskSplinePoint * point )

◆ BKE_mask_calc_handle_point_auto()

void BKE_mask_calc_handle_point_auto ( struct MaskSpline * spline,
struct MaskSplinePoint * point,
bool do_recalc_length )

Resets auto handles even for non-auto bezier points.

Useful for giving sane defaults.

Definition at line 1430 of file blenkernel/intern/mask.cc.

References MaskSplinePoint::bezt, BKE_mask_get_handle_point_adjacent(), dist_ensure_v2_v2fl(), BezTriple::h1, BezTriple::h2, HD_AUTO, len_v3v3(), mask_calc_point_handle(), and BezTriple::vec.

Referenced by add_vertex_handle_cyclic_at_point(), and mask_normals_make_consistent_exec().

◆ BKE_mask_calc_tangent_polyline()

void BKE_mask_calc_tangent_polyline ( struct MaskSpline * spline,
struct MaskSplinePoint * point,
float t[2] )

Calculates the tangent of a point by its previous and next (ignoring handles - as if its a poly line).

Definition at line 1347 of file blenkernel/intern/mask.cc.

References add_v2_v2v2(), MaskSplinePoint::bezt, BKE_mask_get_handle_point_adjacent(), normalize_v2(), sub_v2_v2v2(), BezTriple::vec, and zero_v2().

Referenced by add_vertex_extrude().

◆ BKE_mask_clipboard_copy_from_layer()

◆ BKE_mask_clipboard_free()

void BKE_mask_clipboard_free ( void )

Free the clipboard.

Definition at line 1967 of file blenkernel/intern/mask.cc.

References mask_clipboard_free_ex().

Referenced by WM_exit_ex().

◆ BKE_mask_clipboard_is_empty()

bool BKE_mask_clipboard_is_empty ( void )

Check clipboard is empty.

Definition at line 2004 of file blenkernel/intern/mask.cc.

References BLI_listbase_is_empty(), and mask_clipboard.

Referenced by paste_splines_poll().

◆ BKE_mask_clipboard_paste_to_layer()

void BKE_mask_clipboard_paste_to_layer ( struct Main * bmain,
struct MaskLayer * mask_layer )

◆ BKE_mask_coord_from_frame()

void BKE_mask_coord_from_frame ( float r_co[2],
const float co[2],
const float frame_size[2] )

◆ BKE_mask_coord_from_image()

void BKE_mask_coord_from_image ( struct Image * image,
struct ImageUser * iuser,
float r_co[2],
const float co[2] )

◆ BKE_mask_coord_from_movieclip()

◆ BKE_mask_coord_to_frame()

void BKE_mask_coord_to_frame ( float r_co[2],
const float co[2],
const float frame_size[2] )

◆ BKE_mask_coord_to_image()

void BKE_mask_coord_to_image ( struct Image * image,
struct ImageUser * iuser,
float r_co[2],
const float co[2] )

◆ BKE_mask_coord_to_movieclip()

◆ BKE_mask_eval_animation()

void BKE_mask_eval_animation ( struct Depsgraph * depsgraph,
struct Mask * mask )

◆ BKE_mask_eval_update()

◆ BKE_mask_evaluate()

void BKE_mask_evaluate ( struct Mask * mask,
float ctime,
bool do_newframe )

◆ BKE_mask_get_duration()

int BKE_mask_get_duration ( struct Mask * mask)

Definition at line 1946 of file blenkernel/intern/mask.cc.

References mask(), and max_ii().

Referenced by blender::seq::add_mask_strip(), and blender::seq::add_reload_new_file().

◆ BKE_mask_get_handle_point_adjacent()

◆ BKE_mask_layer_active()

struct MaskLayer * BKE_mask_layer_active ( struct Mask * mask)

◆ BKE_mask_layer_active_set()

void BKE_mask_layer_active_set ( struct Mask * mask,
struct MaskLayer * masklay )

Definition at line 315 of file blenkernel/intern/mask.cc.

References BLI_findindex(), and mask().

Referenced by mask_hide_view_set_exec().

◆ BKE_mask_layer_calc_handles()

void BKE_mask_layer_calc_handles ( struct MaskLayer * masklay)

◆ BKE_mask_layer_copy()

struct MaskLayer * BKE_mask_layer_copy ( const struct MaskLayer * masklay)

◆ BKE_mask_layer_copy_list()

void BKE_mask_layer_copy_list ( struct ListBase * masklayers_new,
const struct ListBase * masklayers )

◆ BKE_mask_layer_evaluate()

void BKE_mask_layer_evaluate ( struct MaskLayer * masklay,
float ctime,
bool do_newframe )

◆ BKE_mask_layer_evaluate_animation()

◆ BKE_mask_layer_evaluate_deform()

◆ BKE_mask_layer_free()

void BKE_mask_layer_free ( struct MaskLayer * masklay)

◆ BKE_mask_layer_free_list()

void BKE_mask_layer_free_list ( struct ListBase * masklayers)

◆ BKE_mask_layer_free_shapes()

void BKE_mask_layer_free_shapes ( struct MaskLayer * masklay)

Free all animation keys for a mask layer.

Definition at line 1078 of file blenkernel/intern/mask.cc.

References BKE_mask_layer_shape_free(), BLI_remlink(), ListBase::first, MaskLayerShape::next, and MaskLayer::splines_shapes.

Referenced by BKE_mask_layer_free(), and delete_exec().

◆ BKE_mask_layer_new()

◆ BKE_mask_layer_remove()

void BKE_mask_layer_remove ( struct Mask * mask,
struct MaskLayer * masklay )

◆ BKE_mask_layer_rename()

void BKE_mask_layer_rename ( struct Mask * mask,
struct MaskLayer * masklay,
const char * oldname,
const char * newname )

◆ BKE_mask_layer_shape_alloc()

◆ BKE_mask_layer_shape_changed_add()

◆ BKE_mask_layer_shape_changed_remove()

void BKE_mask_layer_shape_changed_remove ( struct MaskLayer * masklay,
int index,
int count )

Move array elements to account for removed point.

Definition at line 1909 of file blenkernel/intern/mask.cc.

References BKE_mask_layer_shape_totvert(), CLOG_ERROR, count, LISTBASE_FOREACH, LOG, MASK_OBJECT_SHAPE_ELEM_SIZE, MEM_calloc_arrayN(), MEM_freeN(), and MaskLayer::splines_shapes.

Referenced by delete_exec().

◆ BKE_mask_layer_shape_duplicate()

struct MaskLayerShape * BKE_mask_layer_shape_duplicate ( struct MaskLayerShape * masklay_shape)

Definition at line 1712 of file blenkernel/intern/mask.cc.

References MaskLayerShape::data, LIKELY, and MEM_dupallocN().

Referenced by ED_masklayer_frames_duplicate().

◆ BKE_mask_layer_shape_find_frame()

struct MaskLayerShape * BKE_mask_layer_shape_find_frame ( struct MaskLayer * masklay,
int frame )

◆ BKE_mask_layer_shape_find_frame_range()

int BKE_mask_layer_shape_find_frame_range ( struct MaskLayer * masklay,
float frame,
struct MaskLayerShape ** r_masklay_shape_a,
struct MaskLayerShape ** r_masklay_shape_b )

When returning 2 - the frame isn't found but before/after frames are.

Definition at line 1656 of file blenkernel/intern/mask.cc.

References ListBase::first, MaskLayerShape::frame, ListBase::last, MaskLayerShape::next, MaskLayerShape::prev, and MaskLayer::splines_shapes.

Referenced by BKE_mask_layer_evaluate_animation().

◆ BKE_mask_layer_shape_free()

void BKE_mask_layer_shape_free ( struct MaskLayerShape * masklay_shape)

◆ BKE_mask_layer_shape_from_mask()

◆ BKE_mask_layer_shape_sort()

void BKE_mask_layer_shape_sort ( struct MaskLayer * masklay)

◆ BKE_mask_layer_shape_spline_from_index()

bool BKE_mask_layer_shape_spline_from_index ( struct MaskLayer * masklay,
int index,
struct MaskSpline ** r_masklay_shape,
int * r_index )

Definition at line 1751 of file blenkernel/intern/mask.cc.

References LISTBASE_FOREACH, and MaskLayer::splines.

Referenced by BKE_mask_layer_shape_changed_add().

◆ BKE_mask_layer_shape_spline_to_index()

◆ BKE_mask_layer_shape_to_mask()

◆ BKE_mask_layer_shape_to_mask_interp()

void BKE_mask_layer_shape_to_mask_interp ( struct MaskLayer * masklay,
struct MaskLayerShape * masklay_shape_a,
struct MaskLayerShape * masklay_shape_b,
float fac )

◆ BKE_mask_layer_shape_totvert()

◆ BKE_mask_layer_shape_unlink()

void BKE_mask_layer_shape_unlink ( struct MaskLayer * masklay,
struct MaskLayerShape * masklay_shape )

◆ BKE_mask_layer_shape_verify_frame()

◆ BKE_mask_layer_unique_name()

void BKE_mask_layer_unique_name ( struct Mask * mask,
struct MaskLayer * masklay )

◆ BKE_mask_new()

struct Mask * BKE_mask_new ( struct Main * bmain,
const char * name )

◆ BKE_mask_parent_init()

void BKE_mask_parent_init ( struct MaskParent * parent)

◆ BKE_mask_point_add_uw()

◆ BKE_mask_point_direction_switch()

◆ BKE_mask_point_free()

void BKE_mask_point_free ( struct MaskSplinePoint * point)

◆ BKE_mask_point_handle()

◆ BKE_mask_point_handles_mode_get()

◆ BKE_mask_point_normal()

◆ BKE_mask_point_parent_matrix_get()

◆ BKE_mask_point_segment_co()

◆ BKE_mask_point_segment_diff()

float * BKE_mask_point_segment_diff ( struct MaskSpline * spline,
struct MaskSplinePoint * point,
int width,
int height,
unsigned int * r_tot_diff_point )

◆ BKE_mask_point_segment_feather_diff()

float * BKE_mask_point_segment_feather_diff ( struct MaskSpline * spline,
struct MaskSplinePoint * point,
int width,
int height,
unsigned int * r_tot_feather_point )

◆ BKE_mask_point_select_set()

◆ BKE_mask_point_select_set_handle()

◆ BKE_mask_point_set_handle()

◆ BKE_mask_point_sort_uw()

struct MaskSplinePointUW * BKE_mask_point_sort_uw ( struct MaskSplinePoint * point,
struct MaskSplinePointUW * uw )

◆ BKE_mask_point_weight()

◆ BKE_mask_point_weight_scalar()

◆ BKE_mask_spline_add()

◆ BKE_mask_spline_copy()

struct MaskSpline * BKE_mask_spline_copy ( const struct MaskSpline * spline)

References mask().

Referenced by slide_point_modal().

◆ BKE_mask_spline_differentiate()

float(* BKE_mask_spline_differentiate ( struct MaskSpline * spline,
int width,
int height,
unsigned int * r_tot_diff_point ))[2]

◆ BKE_mask_spline_differentiate_calc_total()

int BKE_mask_spline_differentiate_calc_total ( const struct MaskSpline * spline,
unsigned int resol )

References depsgraph, and mask().

◆ BKE_mask_spline_differentiate_with_resolution()

◆ BKE_mask_spline_direction_switch()

◆ BKE_mask_spline_ensure_deform()

void BKE_mask_spline_ensure_deform ( struct MaskSpline * spline)

◆ BKE_mask_spline_feather_collapse_inner_loops()

◆ BKE_mask_spline_feather_differentiated_points_with_resolution()

float(* BKE_mask_spline_feather_differentiated_points_with_resolution ( struct MaskSpline * spline,
unsigned int resol,
bool do_feather_isect,
unsigned int * r_tot_feather_point ))[2]

◆ BKE_mask_spline_feather_points()

◆ BKE_mask_spline_feather_resolution()

◆ BKE_mask_spline_free()

◆ BKE_mask_spline_free_list()

void BKE_mask_spline_free_list ( struct ListBase * splines)

◆ BKE_mask_spline_point_array()

◆ BKE_mask_spline_point_array_from_point()

struct MaskSplinePoint * BKE_mask_spline_point_array_from_point ( struct MaskSpline * spline,
const struct MaskSplinePoint * point_ref )

◆ BKE_mask_spline_point_next_bezt()

◆ BKE_mask_spline_project_co()

◆ BKE_mask_spline_remove()

bool BKE_mask_spline_remove ( struct MaskLayer * mask_layer,
struct MaskSpline * spline )

◆ BKE_mask_spline_resolution()

◆ BKE_maskrasterize_buffer()

void BKE_maskrasterize_buffer ( MaskRasterHandle * mr_handle,
unsigned int width,
unsigned int height,
float * buffer )

Rasterize a buffer from a single mask (threaded execution).

Definition at line 1485 of file mask_rasterize.cc.

References BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), data, float, maskrasterize_buffer_cb(), and TaskParallelSettings::use_threading.

Referenced by mask_rasterize(), and blender::seq::seq_render_mask().

◆ BKE_maskrasterize_handle_free()

◆ BKE_maskrasterize_handle_init()

void BKE_maskrasterize_handle_init ( MaskRasterHandle * mr_handle,
struct Mask * mask,
int width,
int height,
bool do_aspect_correct,
bool do_mask_aa,
bool do_feather )

Definition at line 563 of file mask_rasterize.cc.

References add_v2_v2v2(), MaskLayer::alpha, MaskRasterLayer::alpha, angle(), BKE_mask_spline_differentiate_with_resolution(), BKE_mask_spline_feather_collapse_inner_loops(), BKE_mask_spline_feather_differentiated_points_with_resolution(), BKE_mask_spline_feather_resolution(), BKE_mask_spline_resolution(), MaskLayer::blend, MaskRasterLayer::blend, MaskLayer::blend_flag, MaskRasterLayer::blend_flag, BLI_assert, BLI_listbase_count(), BLI_memarena_free(), BLI_memarena_new(), BLI_movelisttolist(), BLI_rctf_do_minmax_v(), BLI_rctf_init_minmax(), BLI_rctf_isect(), BLI_rctf_union(), BLI_remlink(), BLI_SCANFILL_ARENA_SIZE, BLI_scanfill_begin_arena(), BLI_scanfill_calc_ex(), BLI_SCANFILL_CALC_HOLES, BLI_SCANFILL_CALC_POLYS, BLI_scanfill_calc_self_isect(), BLI_scanfill_edge_add(), BLI_scanfill_end_arena(), bounds(), MaskRasterHandle::bounds, MaskRasterLayer::bounds, ScanFillEdge::c, CALC_CAP_RESOL, ScanFillVert::co, copy_v3_v3(), cos, MaskRasterLayer::face_array, FACE_ASSERT, MaskRasterLayer::face_coords, MaskRasterLayer::face_tot, MaskLayer::falloff, MaskRasterLayer::falloff, ScanFillContext::filledgebase, ScanFillContext::fillfacebase, ScanFillContext::fillvertbase, ListBase::first, MaskLayer::flag, float, i, is_cyclic(), MaskRasterSplineInfo::is_cyclic, ScanFillVert::keyindex, ListBase::last, layer_bucket_init(), layer_bucket_init_dummy(), MaskRasterHandle::layers, MaskRasterHandle::layers_tot, LISTBASE_FOREACH, M_PI, mask(), MASK_HIDE_RENDER, MASK_LAYERFLAG_FILL_DISCRETE, MASK_LAYERFLAG_FILL_OVERLAP, MASK_SPLINE_CYCLIC, MASK_SPLINE_NOFILL, MASK_SPLINE_NOINTERSECT, maskrasterize_spline_differentiate_point_outset(), MEM_calloc_arrayN(), MEM_freeN(), MEM_malloc_arrayN(), MEM_reallocN, min_ii(), MaskLayer::next, ScanFillFace::next, ScanFillVert::next, ScanFillContext::poly_nr, rotate_point_v2(), scanfill_vert_add_v2_with_depth(), SF_EDGE_IS_BOUNDARY, SF_KEYINDEX_TEMP_ID, MaskLayer::splines, sub_v2_v2v2(), ScanFillEdge::tmp, ScanFillVert::tmp, TRI_VERT, ScanFillVert::u, UNUSED_VARS_NDEBUG, ScanFillEdge::v1, ScanFillFace::v1, ScanFillEdge::v2, ScanFillFace::v2, ScanFillFace::v3, MaskRasterSplineInfo::vertex_offset, MaskRasterSplineInfo::vertex_total, MaskRasterSplineInfo::vertex_total_cap_head, MaskRasterSplineInfo::vertex_total_cap_tail, and MaskLayer::visibility_flag.

Referenced by blender::compositor::get_mask_raster_handles(), mask_rasterize(), and blender::seq::seq_render_mask().

◆ BKE_maskrasterize_handle_new()

MaskRasterHandle * BKE_maskrasterize_handle_new ( void )

◆ BKE_maskrasterize_handle_sample()