Blender  V2.93
BKE_mask.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2012 Blender Foundation.
17  * All rights reserved.
18  */
19 
20 #pragma once
21 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 struct Depsgraph;
31 struct Image;
32 struct ImageUser;
33 struct ListBase;
34 struct Main;
35 struct Mask;
36 struct MaskLayer;
37 struct MaskLayerShape;
38 struct MaskParent;
39 struct MaskSpline;
40 struct MaskSplinePoint;
41 struct MaskSplinePointUW;
42 struct MovieClip;
43 struct MovieClipUser;
44 
45 /* mask_ops.c */
46 typedef enum {
53 
54 typedef enum {
58 
61  struct MaskSpline *spline, const struct MaskSplinePoint *point_ref);
62 
63 /* mask layers */
64 struct MaskLayer *BKE_mask_layer_new(struct Mask *mask, const char *name);
65 struct MaskLayer *BKE_mask_layer_active(struct Mask *mask);
66 void BKE_mask_layer_active_set(struct Mask *mask, struct MaskLayer *masklay);
67 void BKE_mask_layer_remove(struct Mask *mask, struct MaskLayer *masklay);
68 
69 void BKE_mask_layer_free_shapes(struct MaskLayer *masklay);
70 void BKE_mask_layer_free(struct MaskLayer *masklay);
71 void BKE_mask_layer_free_list(struct ListBase *masklayers);
72 void BKE_mask_spline_free(struct MaskSpline *spline);
74 struct MaskSpline *BKE_mask_spline_copy(const struct MaskSpline *spline);
75 void BKE_mask_point_free(struct MaskSplinePoint *point);
76 
77 void BKE_mask_layer_unique_name(struct Mask *mask, struct MaskLayer *masklay);
78 void BKE_mask_layer_rename(struct Mask *mask,
79  struct MaskLayer *masklay,
80  char *oldname,
81  char *newname);
82 
83 struct MaskLayer *BKE_mask_layer_copy(const struct MaskLayer *masklay);
84 void BKE_mask_layer_copy_list(struct ListBase *masklayers_new, const struct ListBase *masklayers);
85 
86 /* splines */
87 struct MaskSpline *BKE_mask_spline_add(struct MaskLayer *masklay);
88 bool BKE_mask_spline_remove(struct MaskLayer *mask_layer, struct MaskSpline *spline);
90 void BKE_mask_spline_direction_switch(struct MaskLayer *masklay, struct MaskSpline *spline);
91 
93  struct MaskSplinePoint *points_array,
94  struct MaskSplinePoint *point);
95 
96 typedef enum {
100 } eMaskSign;
101 float BKE_mask_spline_project_co(struct MaskSpline *spline,
102  struct MaskSplinePoint *point,
103  float start_u,
104  const float co[2],
105  const eMaskSign sign);
106 
107 /* point */
109 void BKE_mask_point_handle(const struct MaskSplinePoint *point,
110  eMaskWhichHandle which_handle,
111  float r_handle[2]);
112 void BKE_mask_point_set_handle(struct MaskSplinePoint *point,
113  eMaskWhichHandle which_handle,
114  float loc[2],
115  bool keep_direction,
116  float orig_handle[2],
117  float orig_vec[3][3]);
118 
119 void BKE_mask_point_segment_co(struct MaskSpline *spline,
120  struct MaskSplinePoint *point,
121  float u,
122  float co[2]);
123 void BKE_mask_point_normal(struct MaskSpline *spline,
124  struct MaskSplinePoint *point,
125  float u,
126  float n[2]);
127 float BKE_mask_point_weight_scalar(struct MaskSpline *spline,
128  struct MaskSplinePoint *point,
129  const float u);
130 float BKE_mask_point_weight(struct MaskSpline *spline,
131  struct MaskSplinePoint *point,
132  const float u);
134  struct MaskSplinePointUW *uw);
135 void BKE_mask_point_add_uw(struct MaskSplinePoint *point, float u, float w);
136 
137 void BKE_mask_point_select_set(struct MaskSplinePoint *point, const bool do_select);
139  const eMaskWhichHandle which_handle,
140  const bool do_select);
141 
142 /* general */
143 struct Mask *BKE_mask_new(struct Main *bmain, const char *name);
144 
145 void BKE_mask_coord_from_frame(float r_co[2], const float co[2], const float frame_size[2]);
146 void BKE_mask_coord_from_movieclip(struct MovieClip *clip,
147  struct MovieClipUser *user,
148  float r_co[2],
149  const float co[2]);
150 void BKE_mask_coord_from_image(struct Image *image,
151  struct ImageUser *iuser,
152  float r_co[2],
153  const float co[2]);
154 void BKE_mask_coord_to_frame(float r_co[2], const float co[2], const float frame_size[2]);
155 void BKE_mask_coord_to_movieclip(struct MovieClip *clip,
156  struct MovieClipUser *user,
157  float r_co[2],
158  const float co[2]);
159 void BKE_mask_coord_to_image(struct Image *image,
160  struct ImageUser *iuser,
161  float r_co[2],
162  const float co[2]);
163 
164 /* parenting */
165 
166 void BKE_mask_evaluate(struct Mask *mask, const float ctime, const bool do_newframe);
167 void BKE_mask_layer_evaluate(struct MaskLayer *masklay, const float ctime, const bool do_newframe);
168 void BKE_mask_parent_init(struct MaskParent *parent);
170  struct MaskSplinePoint *point,
171  const float u);
172 void BKE_mask_calc_tangent_polyline(struct MaskSpline *spline,
173  struct MaskSplinePoint *point,
174  float t[2]);
175 void BKE_mask_calc_handle_point(struct MaskSpline *spline, struct MaskSplinePoint *point);
176 void BKE_mask_calc_handle_point_auto(struct MaskSpline *spline,
177  struct MaskSplinePoint *point,
178  const bool do_recalc_length);
180  struct MaskSplinePoint *point,
181  struct MaskSplinePoint **r_point_prev,
182  struct MaskSplinePoint **r_point_next);
183 void BKE_mask_layer_calc_handles(struct MaskLayer *masklay);
184 void BKE_mask_spline_ensure_deform(struct MaskSpline *spline);
186  float ctime,
187  float parent_matrix[3][3]);
188 
189 /* animation */
190 int BKE_mask_layer_shape_totvert(struct MaskLayer *masklay);
191 void BKE_mask_layer_shape_from_mask(struct MaskLayer *masklay,
192  struct MaskLayerShape *masklay_shape);
193 void BKE_mask_layer_shape_to_mask(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape);
195  struct MaskLayerShape *masklay_shape_a,
196  struct MaskLayerShape *masklay_shape_b,
197  const float fac);
198 struct MaskLayerShape *BKE_mask_layer_shape_find_frame(struct MaskLayer *masklay, const int frame);
200  const float frame,
201  struct MaskLayerShape **r_masklay_shape_a,
202  struct MaskLayerShape **r_masklay_shape_b);
203 struct MaskLayerShape *BKE_mask_layer_shape_alloc(struct MaskLayer *masklay, const int frame);
204 void BKE_mask_layer_shape_free(struct MaskLayerShape *masklay_shape);
206  const int frame);
207 struct MaskLayerShape *BKE_mask_layer_shape_duplicate(struct MaskLayerShape *masklay_shape);
208 void BKE_mask_layer_shape_unlink(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape);
209 void BKE_mask_layer_shape_sort(struct MaskLayer *masklay);
210 
212  int index,
213  struct MaskSpline **r_masklay_shape,
214  int *r_index);
215 int BKE_mask_layer_shape_spline_to_index(struct MaskLayer *masklay, struct MaskSpline *spline);
216 
217 void BKE_mask_layer_shape_changed_add(struct MaskLayer *masklay,
218  int index,
219  bool do_init,
220  bool do_init_interpolate);
221 
222 void BKE_mask_layer_shape_changed_remove(struct MaskLayer *masklay, int index, int count);
223 
224 int BKE_mask_get_duration(struct Mask *mask);
225 
226 /* clipboard */
227 void BKE_mask_clipboard_free(void);
228 void BKE_mask_clipboard_copy_from_layer(struct MaskLayer *mask_layer);
229 bool BKE_mask_clipboard_is_empty(void);
230 void BKE_mask_clipboard_paste_to_layer(struct Main *bmain, struct MaskLayer *mask_layer);
231 
232 #define MASKPOINT_ISSEL_ANY(p) ((((p)->bezt.f1 | (p)->bezt.f2 | (p)->bezt.f3) & SELECT) != 0)
233 #define MASKPOINT_ISSEL_KNOT(p) (((p)->bezt.f2 & SELECT) != 0)
234 
235 #define MASKPOINT_ISSEL_HANDLE(point, which_handle) \
236  ((((which_handle) == MASK_WHICH_HANDLE_STICK) ? \
237  ((((point)->bezt.f1 | (point)->bezt.f3) & SELECT)) : \
238  (((which_handle) == MASK_WHICH_HANDLE_LEFT) ? ((point)->bezt.f1 & SELECT) : \
239  ((point)->bezt.f3 & SELECT))) != 0)
240 
241 #define MASKPOINT_SEL_ALL(p) \
242  { \
243  (p)->bezt.f1 |= SELECT; \
244  (p)->bezt.f2 |= SELECT; \
245  (p)->bezt.f3 |= SELECT; \
246  } \
247  (void)0
248 #define MASKPOINT_DESEL_ALL(p) \
249  { \
250  (p)->bezt.f1 &= ~SELECT; \
251  (p)->bezt.f2 &= ~SELECT; \
252  (p)->bezt.f3 &= ~SELECT; \
253  } \
254  (void)0
255 #define MASKPOINT_INVSEL_ALL(p) \
256  { \
257  (p)->bezt.f1 ^= SELECT; \
258  (p)->bezt.f2 ^= SELECT; \
259  (p)->bezt.f3 ^= SELECT; \
260  } \
261  (void)0
262 
263 #define MASK_RESOL_MAX 128
264 
265 /* mask_evaluate.c */
266 unsigned int BKE_mask_spline_resolution(struct MaskSpline *spline, int width, int height);
267 unsigned int BKE_mask_spline_feather_resolution(struct MaskSpline *spline, int width, int height);
269  const unsigned int resol);
270 
272  const unsigned int resol,
273  unsigned int *r_tot_diff_point))[2];
275  float (*feather_points)[2],
276  const unsigned int tot_feather_point);
278  struct MaskSpline *spline, int width, int height, unsigned int *r_tot_diff_point))[2];
280  struct MaskSpline *spline,
281  const unsigned int resol,
282  const bool do_feather_isect,
283  unsigned int *r_tot_feather_point))[2];
284 
285 /* *** mask point functions which involve evaluation *** */
286 float (*BKE_mask_spline_feather_points(struct MaskSpline *spline, int *tot_feather_point))[2];
287 
288 float *BKE_mask_point_segment_diff(struct MaskSpline *spline,
289  struct MaskSplinePoint *point,
290  int width,
291  int height,
292  unsigned int *r_tot_diff_point);
293 
294 float *BKE_mask_point_segment_feather_diff(struct MaskSpline *spline,
295  struct MaskSplinePoint *point,
296  int width,
297  int height,
298  unsigned int *tot_feather_point);
299 
300 void BKE_mask_layer_evaluate_animation(struct MaskLayer *masklay, const float ctime);
301 void BKE_mask_layer_evaluate_deform(struct MaskLayer *masklay, const float ctime);
302 
303 void BKE_mask_eval_animation(struct Depsgraph *depsgraph, struct Mask *mask);
305 
306 /* mask_rasterize.c */
307 struct MaskRasterHandle;
308 typedef struct MaskRasterHandle MaskRasterHandle;
309 
313  struct Mask *mask,
314  const int width,
315  const int height,
316  const bool do_aspect_correct,
317  const bool do_mask_aa,
318  const bool do_feather);
319 float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float xy[2]);
320 
322  const unsigned int width,
323  const unsigned int height,
324  float *buffer);
325 
326 #ifdef __cplusplus
327 }
328 #endif
typedef float(TangentPoint)[2]
void BKE_mask_layer_free(struct MaskLayer *masklay)
Definition: mask.c:1178
void BKE_mask_calc_handle_adjacent_interp(struct MaskSpline *spline, struct MaskSplinePoint *point, const float u)
Definition: mask.c:1471
void BKE_mask_evaluate(struct Mask *mask, const float ctime, const bool do_newframe)
Definition: mask.c:1595
eMaskhandleMode
Definition: BKE_mask.h:54
@ MASK_HANDLE_MODE_INDIVIDUAL_HANDLES
Definition: BKE_mask.h:56
@ MASK_HANDLE_MODE_STICK
Definition: BKE_mask.h:55
void BKE_mask_layer_unique_name(struct Mask *mask, struct MaskLayer *masklay)
Definition: mask.c:398
int BKE_mask_spline_differentiate_calc_total(const struct MaskSpline *spline, const unsigned int resol)
struct MaskLayerShape * BKE_mask_layer_shape_find_frame(struct MaskLayer *masklay, const int frame)
Definition: mask.c:1744
void BKE_maskrasterize_handle_free(MaskRasterHandle *mr_handle)
void BKE_mask_layer_shape_changed_add(struct MaskLayer *masklay, int index, bool do_init, bool do_init_interpolate)
Definition: mask.c:1927
void BKE_mask_get_handle_point_adjacent(struct MaskSpline *spline, struct MaskSplinePoint *point, struct MaskSplinePoint **r_point_prev, struct MaskSplinePoint **r_point_next)
Definition: mask.c:1420
float(* BKE_mask_spline_differentiate(struct MaskSpline *spline, int width, int height, unsigned int *r_tot_diff_point))[2]
float * BKE_mask_point_segment_feather_diff(struct MaskSpline *spline, struct MaskSplinePoint *point, int width, int height, unsigned int *tot_feather_point)
void BKE_mask_layer_shape_unlink(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
Definition: mask.c:1831
void BKE_mask_layer_shape_to_mask(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
Definition: mask.c:1669
void BKE_mask_calc_tangent_polyline(struct MaskSpline *spline, struct MaskSplinePoint *point, float t[2])
Definition: mask.c:1434
void BKE_mask_point_select_set(struct MaskSplinePoint *point, const bool do_select)
Definition: mask.c:971
void BKE_mask_layer_shape_sort(struct MaskLayer *masklay)
Definition: mask.c:1854
void BKE_mask_layer_evaluate_animation(struct MaskLayer *masklay, const float ctime)
void BKE_mask_layer_remove(struct Mask *mask, struct MaskLayer *masklay)
Definition: mask.c:386
struct MaskLayerShape * BKE_mask_layer_shape_duplicate(struct MaskLayerShape *masklay_shape)
Definition: mask.c:1818
bool BKE_mask_spline_remove(struct MaskLayer *mask_layer, struct MaskSpline *spline)
Definition: mask.c:508
void BKE_mask_coord_from_image(struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2])
Definition: mask.c:1236
unsigned int BKE_mask_spline_feather_resolution(struct MaskSpline *spline, int width, int height)
Definition: mask_evaluate.c:82
eMaskWhichHandle
Definition: BKE_mask.h:46
@ MASK_WHICH_HANDLE_NONE
Definition: BKE_mask.h:47
@ MASK_WHICH_HANDLE_BOTH
Definition: BKE_mask.h:51
@ MASK_WHICH_HANDLE_RIGHT
Definition: BKE_mask.h:50
@ MASK_WHICH_HANDLE_LEFT
Definition: BKE_mask.h:49
@ MASK_WHICH_HANDLE_STICK
Definition: BKE_mask.h:48
int BKE_mask_layer_shape_find_frame_range(struct MaskLayer *masklay, const float frame, struct MaskLayerShape **r_masklay_shape_a, struct MaskLayerShape **r_masklay_shape_b)
Definition: mask.c:1764
void BKE_maskrasterize_handle_init(MaskRasterHandle *mr_handle, struct Mask *mask, const int width, const int height, const bool do_aspect_correct, const bool do_mask_aa, const bool do_feather)
void BKE_mask_spline_free(struct MaskSpline *spline)
Definition: mask.c:1068
float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float xy[2])
void BKE_mask_point_direction_switch(struct MaskSplinePoint *point)
Definition: mask.c:519
void BKE_mask_layer_copy_list(struct ListBase *masklayers_new, const struct ListBase *masklayers)
void BKE_maskrasterize_buffer(MaskRasterHandle *mr_handle, const unsigned int width, const unsigned int height, float *buffer)
Rasterize a buffer from a single mask (threaded execution).
void BKE_mask_layer_free_list(struct ListBase *masklayers)
Definition: mask.c:1189
void BKE_mask_calc_handle_point(struct MaskSpline *spline, struct MaskSplinePoint *point)
Definition: mask.c:1462
int BKE_mask_get_duration(struct Mask *mask)
Definition: mask.c:2062
struct MaskLayer * BKE_mask_layer_new(struct Mask *mask, const char *name)
Definition: mask.c:351
void BKE_mask_layer_shape_to_mask_interp(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape_a, struct MaskLayerShape *masklay_shape_b, const float fac)
Definition: mask.c:1701
void BKE_mask_point_free(struct MaskSplinePoint *point)
Definition: mask.c:1061
struct MaskLayerShape * BKE_mask_layer_shape_verify_frame(struct MaskLayer *masklay, const int frame)
Definition: mask.c:1803
struct MaskLayer * BKE_mask_layer_active(struct Mask *mask)
Definition: mask.c:376
struct MaskSplinePointUW * BKE_mask_point_sort_uw(struct MaskSplinePoint *point, struct MaskSplinePointUW *uw)
Definition: mask.c:928
void BKE_mask_layer_active_set(struct Mask *mask, struct MaskLayer *masklay)
Definition: mask.c:381
float(* BKE_mask_spline_differentiate_with_resolution(struct MaskSpline *spline, const unsigned int resol, unsigned int *r_tot_diff_point))[2]
void BKE_mask_layer_evaluate_deform(struct MaskLayer *masklay, const float ctime)
bool BKE_mask_layer_shape_spline_from_index(struct MaskLayer *masklay, int index, struct MaskSpline **r_masklay_shape, int *r_index)
Definition: mask.c:1859
void BKE_mask_layer_shape_from_mask(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
Definition: mask.c:1645
void BKE_mask_spline_ensure_deform(struct MaskSpline *spline)
Definition: mask.c:1560
struct MaskLayerShape * BKE_mask_layer_shape_alloc(struct MaskLayer *masklay, const int frame)
Definition: mask.c:1137
void BKE_mask_spline_free_list(struct ListBase *splines)
Definition: mask.c:1092
void BKE_mask_spline_feather_collapse_inner_loops(struct MaskSpline *spline, float(*feather_points)[2], const unsigned int tot_feather_point)
float BKE_mask_spline_project_co(struct MaskSpline *spline, struct MaskSplinePoint *point, float start_u, const float co[2], const eMaskSign sign)
Definition: mask.c:598
float(* BKE_mask_spline_feather_differentiated_points_with_resolution(struct MaskSpline *spline, const unsigned int resol, const bool do_feather_isect, unsigned int *r_tot_feather_point))[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])
Definition: mask.c:714
void BKE_mask_eval_update(struct Depsgraph *depsgraph, struct Mask *mask)
eMaskSign
Definition: BKE_mask.h:96
@ MASK_PROJ_ANY
Definition: BKE_mask.h:98
@ MASK_PROJ_NEG
Definition: BKE_mask.h:97
@ MASK_PROJ_POS
Definition: BKE_mask.h:99
struct MaskSpline * BKE_mask_spline_copy(const struct MaskSpline *spline)
void BKE_mask_coord_to_image(struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2])
Definition: mask.c:1283
void BKE_mask_coord_to_frame(float r_co[2], const float co[2], const float frame_size[2])
Definition: mask.c:1250
void BKE_mask_clipboard_paste_to_layer(struct Main *bmain, struct MaskLayer *mask_layer)
Definition: mask.c:2131
void BKE_mask_coord_to_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
Definition: mask.c:1266
void BKE_mask_layer_free_shapes(struct MaskLayer *masklay)
Free all animation keys for a mask layer.
Definition: mask.c:1162
void BKE_mask_layer_rename(struct Mask *mask, struct MaskLayer *masklay, char *oldname, char *newname)
Definition: mask.c:408
void BKE_mask_point_handle(const struct MaskSplinePoint *point, eMaskWhichHandle which_handle, float r_handle[2])
void BKE_mask_layer_evaluate(struct MaskLayer *masklay, const float ctime, const bool do_newframe)
Definition: mask.c:1585
void BKE_mask_layer_calc_handles(struct MaskLayer *masklay)
Definition: mask.c:1550
void BKE_mask_layer_shape_free(struct MaskLayerShape *masklay_shape)
Definition: mask.c:1151
struct MaskSplinePoint * BKE_mask_spline_point_array_from_point(struct MaskSpline *spline, const struct MaskSplinePoint *point_ref)
void BKE_mask_point_parent_matrix_get(struct MaskSplinePoint *point, float ctime, float parent_matrix[3][3])
Definition: mask.c:1297
int BKE_mask_layer_shape_totvert(struct MaskLayer *masklay)
Definition: mask.c:1612
void BKE_mask_calc_handle_point_auto(struct MaskSpline *spline, struct MaskSplinePoint *point, const bool do_recalc_length)
Resets auto handles even for non-auto bezier points.
Definition: mask.c:1522
void BKE_mask_point_add_uw(struct MaskSplinePoint *point, float u, float w)
Definition: mask.c:953
void BKE_mask_point_normal(struct MaskSpline *spline, struct MaskSplinePoint *point, float u, float n[2])
Definition: mask.c:795
float(* BKE_mask_spline_feather_points(struct MaskSpline *spline, int *tot_feather_point))[2]
void BKE_mask_point_segment_co(struct MaskSpline *spline, struct MaskSplinePoint *point, float u, float co[2])
Definition: mask.c:767
eMaskhandleMode BKE_mask_point_handles_mode_get(const struct MaskSplinePoint *point)
struct MaskSplinePoint * BKE_mask_spline_point_array(struct MaskSpline *spline)
Definition: mask.c:328
int BKE_mask_layer_shape_spline_to_index(struct MaskLayer *masklay, struct MaskSpline *spline)
Definition: mask.c:1878
void BKE_mask_coord_from_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
Definition: mask.c:1219
void BKE_mask_layer_shape_changed_remove(struct MaskLayer *masklay, int index, int count)
Definition: mask.c:2022
void BKE_mask_clipboard_free(void)
Definition: mask.c:2084
struct MaskLayer * BKE_mask_layer_copy(const struct MaskLayer *masklay)
MaskRasterHandle * BKE_maskrasterize_handle_new(void)
bool BKE_mask_clipboard_is_empty(void)
Definition: mask.c:2125
void BKE_mask_parent_init(struct MaskParent *parent)
Definition: mask.c:1604
float BKE_mask_point_weight_scalar(struct MaskSpline *spline, struct MaskSplinePoint *point, const float u)
Definition: mask.c:853
void BKE_mask_point_select_set_handle(struct MaskSplinePoint *point, const eMaskWhichHandle which_handle, const bool do_select)
Definition: mask.c:990
struct BezTriple * BKE_mask_spline_point_next_bezt(struct MaskSpline *spline, struct MaskSplinePoint *points_array, struct MaskSplinePoint *point)
Definition: mask.c:313
float BKE_mask_point_weight(struct MaskSpline *spline, struct MaskSplinePoint *point, const float u)
Definition: mask.c:873
void BKE_mask_coord_from_frame(float r_co[2], const float co[2], const float frame_size[2])
Definition: mask.c:1203
void BKE_mask_clipboard_copy_from_layer(struct MaskLayer *mask_layer)
Definition: mask.c:2090
struct MaskSpline * BKE_mask_spline_add(struct MaskLayer *masklay)
Definition: mask.c:484
void BKE_mask_eval_animation(struct Depsgraph *depsgraph, struct Mask *mask)
void BKE_mask_spline_direction_switch(struct MaskLayer *masklay, struct MaskSpline *spline)
Definition: mask.c:550
float * BKE_mask_point_segment_diff(struct MaskSpline *spline, struct MaskSplinePoint *point, int width, int height, unsigned int *r_tot_diff_point)
struct Mask * BKE_mask_new(struct Main *bmain, const char *name)
Definition: mask.c:1038
unsigned int BKE_mask_spline_resolution(struct MaskSpline *spline, int width, int height)
Definition: mask_evaluate.c:43
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:51
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition: btQuadWord.h:119
const Depsgraph * depsgraph
int count
__kernel void ccl_constant KernelData ccl_global void ccl_global char ccl_global int ccl_global char ccl_global unsigned int ccl_global float * buffer
ListBase splines
Definition: mask.c:279
double sign(double arg)
Definition: utility.h:250
Definition: BKE_main.h:116
char name[64]
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)