Blender V4.3
mask_evaluate.cc File Reference
#include <algorithm>
#include <cstddef>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_math_geom.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "DNA_mask_types.h"
#include "DNA_object_types.h"
#include "BKE_curve.hh"
#include "BKE_mask.h"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"

Go to the source code of this file.

Classes

struct  FeatherEdgesBucket
 

Macros

#define BUCKET_INDEX(co)   feather_bucket_index_from_coord(co, min, bucket_scale, buckets_per_side)
 

Functions

int BKE_mask_spline_resolution (MaskSpline *spline, int width, int height)
 
uint BKE_mask_spline_feather_resolution (MaskSpline *spline, int width, int height)
 
int BKE_mask_spline_differentiate_calc_total (const MaskSpline *spline, const uint resol)
 
float(* BKE_mask_spline_differentiate_with_resolution (MaskSpline *spline, const uint resol, uint *r_tot_diff_point))[2]
 
float(* BKE_mask_spline_differentiate (MaskSpline *spline, int width, int height, uint *r_tot_diff_point))[2]
 
static void feather_bucket_add_edge (FeatherEdgesBucket *bucket, int start, int end)
 
static void feather_bucket_check_intersect (float(*feather_points)[2], int tot_feather_point, FeatherEdgesBucket *bucket, int cur_a, int cur_b)
 
static int feather_bucket_index_from_coord (const float co[2], const float min[2], const float bucket_scale[2], const int buckets_per_side)
 
static void feather_bucket_get_diagonal (FeatherEdgesBucket *buckets, int start_bucket_index, int end_bucket_index, int buckets_per_side, FeatherEdgesBucket **r_diagonal_bucket_a, FeatherEdgesBucket **r_diagonal_bucket_b)
 
void BKE_mask_spline_feather_collapse_inner_loops (MaskSpline *spline, float(*feather_points)[2], const uint tot_feather_point)
 
static float(* mask_spline_feather_differentiated_points_with_resolution__even (MaskSpline *spline, const uint resol, const bool do_feather_isect, uint *r_tot_feather_point))[2]
 
static float(* mask_spline_feather_differentiated_points_with_resolution__double (MaskSpline *spline, const uint resol, const bool do_feather_isect, uint *r_tot_feather_point))[2]
 
float(* BKE_mask_spline_feather_differentiated_points_with_resolution (MaskSpline *spline, const uint resol, const bool do_feather_isect, uint *r_tot_feather_point))[2]
 
float(* BKE_mask_spline_feather_points (MaskSpline *spline, int *r_tot_feather_point))[2]
 
floatBKE_mask_point_segment_feather_diff (MaskSpline *spline, MaskSplinePoint *point, int width, int height, uint *r_tot_feather_point)
 
floatBKE_mask_point_segment_diff (MaskSpline *spline, MaskSplinePoint *point, int width, int height, uint *r_tot_diff_point)
 
static void mask_evaluate_apply_point_parent (MaskSplinePoint *point, float ctime)
 
void BKE_mask_layer_evaluate_animation (MaskLayer *masklay, const float ctime)
 
void BKE_mask_layer_evaluate_deform (MaskLayer *masklay, const float ctime)
 
void BKE_mask_eval_animation (Depsgraph *depsgraph, Mask *mask)
 
void BKE_mask_eval_update (Depsgraph *depsgraph, Mask *mask)
 

Detailed Description

Functions for evaluating the mask beziers into points for the outline and feather.

Definition in file mask_evaluate.cc.

Macro Definition Documentation

◆ BUCKET_INDEX

#define BUCKET_INDEX ( co)    feather_bucket_index_from_coord(co, min, bucket_scale, buckets_per_side)

Function Documentation

◆ BKE_mask_eval_animation()

void BKE_mask_eval_animation ( Depsgraph * depsgraph,
Mask * mask )

◆ BKE_mask_eval_update()

◆ BKE_mask_layer_evaluate_animation()

◆ BKE_mask_layer_evaluate_deform()

◆ BKE_mask_point_segment_diff()

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

◆ BKE_mask_point_segment_feather_diff()

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

◆ BKE_mask_spline_differentiate()

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

◆ BKE_mask_spline_differentiate_calc_total()

◆ BKE_mask_spline_differentiate_with_resolution()

◆ 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()

uint BKE_mask_spline_feather_resolution ( MaskSpline * spline,
int width,
int height )

◆ BKE_mask_spline_resolution()

◆ feather_bucket_add_edge()

static void feather_bucket_add_edge ( FeatherEdgesBucket * bucket,
int start,
int end )
static

◆ feather_bucket_check_intersect()

static void feather_bucket_check_intersect ( float(*) feather_points[2],
int tot_feather_point,
FeatherEdgesBucket * bucket,
int cur_a,
int cur_b )
static

◆ feather_bucket_get_diagonal()

static void feather_bucket_get_diagonal ( FeatherEdgesBucket * buckets,
int start_bucket_index,
int end_bucket_index,
int buckets_per_side,
FeatherEdgesBucket ** r_diagonal_bucket_a,
FeatherEdgesBucket ** r_diagonal_bucket_b )
static

Definition at line 301 of file mask_evaluate.cc.

Referenced by BKE_mask_spline_feather_collapse_inner_loops().

◆ feather_bucket_index_from_coord()

static int feather_bucket_index_from_coord ( const float co[2],
const float min[2],
const float bucket_scale[2],
const int buckets_per_side )
static

Definition at line 282 of file mask_evaluate.cc.

References int, min, and x.

◆ mask_evaluate_apply_point_parent()

static void mask_evaluate_apply_point_parent ( MaskSplinePoint * point,
float ctime )
static

Definition at line 835 of file mask_evaluate.cc.

References BKE_mask_point_parent_matrix_get(), and mul_m3_v2().

Referenced by BKE_mask_layer_evaluate_deform().

◆ mask_spline_feather_differentiated_points_with_resolution__double()

◆ mask_spline_feather_differentiated_points_with_resolution__even()