Blender  V3.3
BKE_mask.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2012 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 struct Depsgraph;
15 struct Image;
16 struct ImageUser;
17 struct ListBase;
18 struct Main;
19 struct Mask;
20 struct MaskLayer;
21 struct MaskLayerShape;
22 struct MaskParent;
23 struct MaskSpline;
24 struct MaskSplinePoint;
25 struct MaskSplinePointUW;
26 struct MovieClip;
27 struct MovieClipUser;
28 
29 /* mask_ops.c */
30 
31 typedef enum {
38 
39 typedef enum {
43 
44 /* -------------------------------------------------------------------- */
48 struct MaskLayer *BKE_mask_layer_new(struct Mask *mask, const char *name);
52 struct MaskLayer *BKE_mask_layer_active(struct Mask *mask);
53 void BKE_mask_layer_active_set(struct Mask *mask, struct MaskLayer *masklay);
54 void BKE_mask_layer_remove(struct Mask *mask, struct MaskLayer *masklay);
55 
58 void BKE_mask_layer_free_shapes(struct MaskLayer *masklay);
59 void BKE_mask_layer_free(struct MaskLayer *masklay);
60 void BKE_mask_layer_free_list(struct ListBase *masklayers);
61 void BKE_mask_spline_free(struct MaskSpline *spline);
63 struct MaskSpline *BKE_mask_spline_copy(const struct MaskSpline *spline);
65 
66 void BKE_mask_layer_unique_name(struct Mask *mask, struct MaskLayer *masklay);
67 void BKE_mask_layer_rename(struct Mask *mask,
68  struct MaskLayer *masklay,
69  char *oldname,
70  char *newname);
71 
72 struct MaskLayer *BKE_mask_layer_copy(const struct MaskLayer *masklay);
73 void BKE_mask_layer_copy_list(struct ListBase *masklayers_new, const struct ListBase *masklayers);
74 
77 /* -------------------------------------------------------------------- */
83  struct MaskSpline *spline, const struct MaskSplinePoint *point_ref);
84 
85 struct MaskSpline *BKE_mask_spline_add(struct MaskLayer *masklay);
86 bool BKE_mask_spline_remove(struct MaskLayer *mask_layer, struct MaskSpline *spline);
88 void BKE_mask_spline_direction_switch(struct MaskLayer *masklay, struct MaskSpline *spline);
89 
91  struct MaskSplinePoint *points_array,
92  struct MaskSplinePoint *point);
93 
94 typedef enum {
98 } eMaskSign;
99 float BKE_mask_spline_project_co(struct MaskSpline *spline,
100  struct MaskSplinePoint *point,
101  float start_u,
102  const float co[2],
103  eMaskSign sign);
104 
107 /* -------------------------------------------------------------------- */
113  eMaskWhichHandle which_handle,
114  float r_handle[2]);
116  eMaskWhichHandle which_handle,
117  float loc[2],
118  bool keep_direction,
119  float orig_handle[2],
120  float orig_vec[3][3]);
121 
122 void BKE_mask_point_segment_co(struct MaskSpline *spline,
123  struct MaskSplinePoint *point,
124  float u,
125  float co[2]);
126 void BKE_mask_point_normal(struct MaskSpline *spline,
127  struct MaskSplinePoint *point,
128  float u,
129  float n[2]);
130 float BKE_mask_point_weight_scalar(struct MaskSpline *spline,
131  struct MaskSplinePoint *point,
132  float u);
133 float BKE_mask_point_weight(struct MaskSpline *spline, struct MaskSplinePoint *point, float u);
135  struct MaskSplinePointUW *uw);
136 void BKE_mask_point_add_uw(struct MaskSplinePoint *point, float u, float w);
137 
138 void BKE_mask_point_select_set(struct MaskSplinePoint *point, bool do_select);
140  eMaskWhichHandle which_handle,
141  bool do_select);
142 
145 /* -------------------------------------------------------------------- */
149 struct Mask *BKE_mask_new(struct Main *bmain, const char *name);
150 
151 void BKE_mask_coord_from_frame(float r_co[2], const float co[2], const float frame_size[2]);
152 void BKE_mask_coord_from_movieclip(struct MovieClip *clip,
153  struct MovieClipUser *user,
154  float r_co[2],
155  const float co[2]);
157  struct ImageUser *iuser,
158  float r_co[2],
159  const float co[2]);
163 void BKE_mask_coord_to_frame(float r_co[2], const float co[2], const float frame_size[2]);
164 void BKE_mask_coord_to_movieclip(struct MovieClip *clip,
165  struct MovieClipUser *user,
166  float r_co[2],
167  const float co[2]);
168 void BKE_mask_coord_to_image(struct Image *image,
169  struct ImageUser *iuser,
170  float r_co[2],
171  const float co[2]);
172 
175 /* -------------------------------------------------------------------- */
179 void BKE_mask_evaluate(struct Mask *mask, float ctime, bool do_newframe);
180 void BKE_mask_layer_evaluate(struct MaskLayer *masklay, float ctime, bool do_newframe);
181 void BKE_mask_parent_init(struct MaskParent *parent);
183  struct MaskSplinePoint *point,
184  float u);
189 void BKE_mask_calc_tangent_polyline(struct MaskSpline *spline,
190  struct MaskSplinePoint *point,
191  float t[2]);
192 void BKE_mask_calc_handle_point(struct MaskSpline *spline, struct MaskSplinePoint *point);
198 void BKE_mask_calc_handle_point_auto(struct MaskSpline *spline,
199  struct MaskSplinePoint *point,
200  bool do_recalc_length);
202  struct MaskSplinePoint *point,
203  struct MaskSplinePoint **r_point_prev,
204  struct MaskSplinePoint **r_point_next);
205 void BKE_mask_layer_calc_handles(struct MaskLayer *masklay);
206 void BKE_mask_spline_ensure_deform(struct MaskSpline *spline);
208  float ctime,
209  float parent_matrix[3][3]);
210 
213 /* -------------------------------------------------------------------- */
217 int BKE_mask_layer_shape_totvert(struct MaskLayer *masklay);
221 void BKE_mask_layer_shape_from_mask(struct MaskLayer *masklay,
222  struct MaskLayerShape *masklay_shape);
226 void BKE_mask_layer_shape_to_mask(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape);
231  struct MaskLayerShape *masklay_shape_a,
232  struct MaskLayerShape *masklay_shape_b,
233  float fac);
234 struct MaskLayerShape *BKE_mask_layer_shape_find_frame(struct MaskLayer *masklay, int frame);
239  float frame,
240  struct MaskLayerShape **r_masklay_shape_a,
241  struct MaskLayerShape **r_masklay_shape_b);
245 struct MaskLayerShape *BKE_mask_layer_shape_alloc(struct MaskLayer *masklay, int frame);
246 void BKE_mask_layer_shape_free(struct MaskLayerShape *masklay_shape);
248 struct MaskLayerShape *BKE_mask_layer_shape_duplicate(struct MaskLayerShape *masklay_shape);
249 void BKE_mask_layer_shape_unlink(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape);
250 void BKE_mask_layer_shape_sort(struct MaskLayer *masklay);
251 
253  int index,
254  struct MaskSpline **r_masklay_shape,
255  int *r_index);
256 int BKE_mask_layer_shape_spline_to_index(struct MaskLayer *masklay, struct MaskSpline *spline);
257 
261 void BKE_mask_layer_shape_changed_add(struct MaskLayer *masklay,
262  int index,
263  bool do_init,
264  bool do_init_interpolate);
265 
269 void BKE_mask_layer_shape_changed_remove(struct MaskLayer *masklay, int index, int count);
270 
271 int BKE_mask_get_duration(struct Mask *mask);
272 
275 /* -------------------------------------------------------------------- */
282 void BKE_mask_clipboard_free(void);
286 void BKE_mask_clipboard_copy_from_layer(struct MaskLayer *mask_layer);
290 bool BKE_mask_clipboard_is_empty(void);
294 void BKE_mask_clipboard_paste_to_layer(struct Main *bmain, struct MaskLayer *mask_layer);
295 
296 #define MASKPOINT_ISSEL_ANY(p) ((((p)->bezt.f1 | (p)->bezt.f2 | (p)->bezt.f3) & SELECT) != 0)
297 #define MASKPOINT_ISSEL_KNOT(p) (((p)->bezt.f2 & SELECT) != 0)
298 
299 #define MASKPOINT_ISSEL_HANDLE(point, which_handle) \
300  ((((which_handle) == MASK_WHICH_HANDLE_STICK) ? \
301  ((((point)->bezt.f1 | (point)->bezt.f3) & SELECT)) : \
302  (((which_handle) == MASK_WHICH_HANDLE_LEFT) ? ((point)->bezt.f1 & SELECT) : \
303  ((point)->bezt.f3 & SELECT))) != 0)
304 
305 #define MASKPOINT_SEL_ALL(p) \
306  { \
307  (p)->bezt.f1 |= SELECT; \
308  (p)->bezt.f2 |= SELECT; \
309  (p)->bezt.f3 |= SELECT; \
310  } \
311  (void)0
312 #define MASKPOINT_DESEL_ALL(p) \
313  { \
314  (p)->bezt.f1 &= ~SELECT; \
315  (p)->bezt.f2 &= ~SELECT; \
316  (p)->bezt.f3 &= ~SELECT; \
317  } \
318  (void)0
319 #define MASKPOINT_INVSEL_ALL(p) \
320  { \
321  (p)->bezt.f1 ^= SELECT; \
322  (p)->bezt.f2 ^= SELECT; \
323  (p)->bezt.f3 ^= SELECT; \
324  } \
325  (void)0
326 
329 /* -------------------------------------------------------------------- */
333 #define MASK_RESOL_MAX 128
334 
335 /* mask_evaluate.c */
336 
337 unsigned int BKE_mask_spline_resolution(struct MaskSpline *spline, int width, int height);
338 unsigned int BKE_mask_spline_feather_resolution(struct MaskSpline *spline, int width, int height);
339 int BKE_mask_spline_differentiate_calc_total(const struct MaskSpline *spline, unsigned int resol);
340 
342  unsigned int resol,
343  unsigned int *r_tot_diff_point))[2];
345  float (*feather_points)[2],
346  unsigned int tot_feather_point);
348  struct MaskSpline *spline, int width, int height, unsigned int *r_tot_diff_point))[2];
354  struct MaskSpline *spline,
355  unsigned int resol,
356  bool do_feather_isect,
357  unsigned int *r_tot_feather_point))[2];
358 
359 /* *** mask point functions which involve evaluation *** */
360 
361 float (*BKE_mask_spline_feather_points(struct MaskSpline *spline, int *tot_feather_point))[2];
362 
363 float *BKE_mask_point_segment_diff(struct MaskSpline *spline,
364  struct MaskSplinePoint *point,
365  int width,
366  int height,
367  unsigned int *r_tot_diff_point);
368 
369 /* *** mask point functions which involve evaluation *** */
370 
371 float *BKE_mask_point_segment_feather_diff(struct MaskSpline *spline,
372  struct MaskSplinePoint *point,
373  int width,
374  int height,
375  unsigned int *tot_feather_point);
376 
377 void BKE_mask_layer_evaluate_animation(struct MaskLayer *masklay, float ctime);
378 void BKE_mask_layer_evaluate_deform(struct MaskLayer *masklay, float ctime);
379 
380 void BKE_mask_eval_animation(struct Depsgraph *depsgraph, struct Mask *mask);
382 
385 /* -------------------------------------------------------------------- */
389 /* mask_rasterize.c */
390 
391 struct MaskRasterHandle;
392 typedef struct MaskRasterHandle MaskRasterHandle;
393 
397  struct Mask *mask,
398  int width,
399  int height,
400  bool do_aspect_correct,
401  bool do_mask_aa,
402  bool do_feather);
403 float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float xy[2]);
404 
409  unsigned int width,
410  unsigned int height,
411  float *buffer);
412 
415 #ifdef __cplusplus
416 }
417 #endif
typedef float(TangentPoint)[2]
void BKE_mask_layer_free(struct MaskLayer *masklay)
Definition: mask.c:1159
eMaskhandleMode
Definition: BKE_mask.h:39
@ MASK_HANDLE_MODE_INDIVIDUAL_HANDLES
Definition: BKE_mask.h:41
@ MASK_HANDLE_MODE_STICK
Definition: BKE_mask.h:40
struct MaskLayerShape * BKE_mask_layer_shape_verify_frame(struct MaskLayer *masklay, int frame)
Definition: mask.c:1771
void BKE_mask_layer_unique_name(struct Mask *mask, struct MaskLayer *masklay)
Definition: mask.c:383
float(* BKE_mask_spline_differentiate_with_resolution(struct MaskSpline *spline, unsigned int resol, unsigned int *r_tot_diff_point))[2]
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:1894
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:1400
struct MaskLayerShape * BKE_mask_layer_shape_alloc(struct MaskLayer *masklay, int frame)
Definition: mask.c:1120
void BKE_mask_layer_evaluate_deform(struct MaskLayer *masklay, float ctime)
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:1799
void BKE_mask_layer_shape_to_mask(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
Definition: mask.c:1641
void BKE_mask_calc_tangent_polyline(struct MaskSpline *spline, struct MaskSplinePoint *point, float t[2])
Definition: mask.c:1412
void BKE_mask_layer_shape_sort(struct MaskLayer *masklay)
Definition: mask.c:1822
void BKE_mask_layer_remove(struct Mask *mask, struct MaskLayer *masklay)
Definition: mask.c:371
void BKE_mask_point_select_set(struct MaskSplinePoint *point, bool do_select)
Definition: mask.c:955
struct MaskLayerShape * BKE_mask_layer_shape_duplicate(struct MaskLayerShape *masklay_shape)
Definition: mask.c:1786
bool BKE_mask_spline_remove(struct MaskLayer *mask_layer, struct MaskSpline *spline)
Definition: mask.c:493
void BKE_mask_coord_from_image(struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2])
Definition: mask.c:1217
unsigned int BKE_mask_spline_feather_resolution(struct MaskSpline *spline, int width, int height)
Definition: mask_evaluate.c:66
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.
Definition: mask.c:1495
eMaskWhichHandle
Definition: BKE_mask.h:31
@ MASK_WHICH_HANDLE_NONE
Definition: BKE_mask.h:32
@ MASK_WHICH_HANDLE_BOTH
Definition: BKE_mask.h:36
@ MASK_WHICH_HANDLE_RIGHT
Definition: BKE_mask.h:35
@ MASK_WHICH_HANDLE_LEFT
Definition: BKE_mask.h:34
@ MASK_WHICH_HANDLE_STICK
Definition: BKE_mask.h:33
void BKE_mask_spline_free(struct MaskSpline *spline)
Definition: mask.c:1052
float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float xy[2])
void BKE_mask_point_direction_switch(struct MaskSplinePoint *point)
Definition: mask.c:504
void BKE_mask_layer_copy_list(struct ListBase *masklayers_new, const struct ListBase *masklayers)
void BKE_mask_layer_evaluate(struct MaskLayer *masklay, float ctime, bool do_newframe)
Definition: mask.c:1558
void BKE_mask_layer_shape_to_mask_interp(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape_a, struct MaskLayerShape *masklay_shape_b, float fac)
Definition: mask.c:1672
void BKE_mask_layer_free_list(struct ListBase *masklayers)
Definition: mask.c:1170
struct MaskLayerShape * BKE_mask_layer_shape_find_frame(struct MaskLayer *masklay, int frame)
Definition: mask.c:1715
void BKE_mask_calc_handle_point(struct MaskSpline *spline, struct MaskSplinePoint *point)
Definition: mask.c:1440
int BKE_mask_get_duration(struct Mask *mask)
Definition: mask.c:2028
void BKE_mask_evaluate(struct Mask *mask, float ctime, bool do_newframe)
Definition: mask.c:1568
struct MaskLayer * BKE_mask_layer_new(struct Mask *mask, const char *name)
Definition: mask.c:337
void BKE_mask_point_free(struct MaskSplinePoint *point)
Definition: mask.c:1045
struct MaskLayer * BKE_mask_layer_active(struct Mask *mask)
Definition: mask.c:361
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)
Definition: mask.c:1732
struct MaskSplinePointUW * BKE_mask_point_sort_uw(struct MaskSplinePoint *point, struct MaskSplinePointUW *uw)
Definition: mask.c:912
int BKE_mask_spline_differentiate_calc_total(const struct MaskSpline *spline, unsigned int resol)
void BKE_mask_layer_active_set(struct Mask *mask, struct MaskLayer *masklay)
Definition: mask.c:366
bool BKE_mask_layer_shape_spline_from_index(struct MaskLayer *masklay, int index, struct MaskSpline **r_masklay_shape, int *r_index)
Definition: mask.c:1827
void BKE_mask_layer_shape_from_mask(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape)
Definition: mask.c:1617
void BKE_mask_spline_ensure_deform(struct MaskSpline *spline)
Definition: mask.c:1533
void BKE_mask_spline_free_list(struct ListBase *splines)
Definition: mask.c:1076
float BKE_mask_point_weight(struct MaskSpline *spline, struct MaskSplinePoint *point, float u)
Definition: mask.c:857
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_mask_point_weight_scalar(struct MaskSpline *spline, struct MaskSplinePoint *point, float u)
Definition: mask.c:837
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:699
void BKE_mask_eval_update(struct Depsgraph *depsgraph, struct Mask *mask)
eMaskSign
Definition: BKE_mask.h:94
@ MASK_PROJ_ANY
Definition: BKE_mask.h:96
@ MASK_PROJ_NEG
Definition: BKE_mask.h:95
@ MASK_PROJ_POS
Definition: BKE_mask.h:97
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:1263
void BKE_mask_coord_to_frame(float r_co[2], const float co[2], const float frame_size[2])
Definition: mask.c:1230
void BKE_mask_clipboard_paste_to_layer(struct Main *bmain, struct MaskLayer *mask_layer)
Definition: mask.c:2093
void BKE_mask_coord_to_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
Definition: mask.c:1246
void BKE_mask_calc_handle_adjacent_interp(struct MaskSpline *spline, struct MaskSplinePoint *point, float u)
Definition: mask.c:1449
void BKE_mask_layer_free_shapes(struct MaskLayer *masklay)
Free all animation keys for a mask layer.
Definition: mask.c:1143
void BKE_mask_layer_rename(struct Mask *mask, struct MaskLayer *masklay, char *oldname, char *newname)
Definition: mask.c:393
void BKE_mask_point_handle(const struct MaskSplinePoint *point, eMaskWhichHandle which_handle, float r_handle[2])
void BKE_mask_spline_feather_collapse_inner_loops(struct MaskSpline *spline, float(*feather_points)[2], unsigned int tot_feather_point)
void BKE_mask_layer_calc_handles(struct MaskLayer *masklay)
Definition: mask.c:1523
void BKE_mask_layer_shape_free(struct MaskLayerShape *masklay_shape)
Definition: mask.c:1134
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:1277
int BKE_mask_layer_shape_totvert(struct MaskLayer *masklay)
Definition: mask.c:1585
void BKE_mask_point_add_uw(struct MaskSplinePoint *point, float u, float w)
Definition: mask.c:937
void BKE_mask_point_normal(struct MaskSpline *spline, struct MaskSplinePoint *point, float u, float n[2])
Definition: mask.c:776
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:752
eMaskhandleMode BKE_mask_point_handles_mode_get(const struct MaskSplinePoint *point)
struct MaskSplinePoint * BKE_mask_spline_point_array(struct MaskSpline *spline)
Definition: mask.c:314
int BKE_mask_layer_shape_spline_to_index(struct MaskLayer *masklay, struct MaskSpline *spline)
Definition: mask.c:1846
void BKE_mask_coord_from_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
Definition: mask.c:1200
void BKE_mask_layer_shape_changed_remove(struct MaskLayer *masklay, int index, int count)
Definition: mask.c:1988
void BKE_mask_point_select_set_handle(struct MaskSplinePoint *point, eMaskWhichHandle which_handle, bool do_select)
Definition: mask.c:974
void BKE_mask_clipboard_free(void)
Definition: mask.c:2049
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:2088
void BKE_mask_parent_init(struct MaskParent *parent)
Definition: mask.c:1577
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_project_co(struct MaskSpline *spline, struct MaskSplinePoint *point, float start_u, const float co[2], eMaskSign sign)
Definition: mask.c:583
struct BezTriple * BKE_mask_spline_point_next_bezt(struct MaskSpline *spline, struct MaskSplinePoint *points_array, struct MaskSplinePoint *point)
Definition: mask.c:299
void BKE_mask_coord_from_frame(float r_co[2], const float co[2], const float frame_size[2])
Definition: mask.c:1184
void BKE_mask_layer_evaluate_animation(struct MaskLayer *masklay, float ctime)
void BKE_maskrasterize_buffer(MaskRasterHandle *mr_handle, unsigned int width, unsigned int height, float *buffer)
Rasterize a buffer from a single mask (threaded execution).
void BKE_mask_clipboard_copy_from_layer(struct MaskLayer *mask_layer)
Definition: mask.c:2054
struct MaskSpline * BKE_mask_spline_add(struct MaskLayer *masklay)
Definition: mask.c:469
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:535
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:1022
unsigned int BKE_mask_spline_resolution(struct MaskSpline *spline, int width, int height)
Definition: mask_evaluate.c:27
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
_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 width
_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
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition: btQuadWord.h:119
const Depsgraph * depsgraph
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
int count
ccl_global float * buffer
ListBase splines
Definition: mask.c:265
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
Definition: math_float4.h:513
double sign(double arg)
Definition: utility.h:250
Definition: BKE_main.h:121
char name[64]
int xy[2]
Definition: wm_draw.c:135