Blender  V3.3
DNA_mask_types.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 
11 #pragma once
12 
13 #include "DNA_ID.h"
14 #include "DNA_curve_types.h"
15 #include "DNA_defs.h"
16 #include "DNA_listBase.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 typedef struct Mask {
23  ID id;
24  struct AnimData *adt;
31 
33  int sfra, efra;
34 
36  int flag;
37  char _pad[4];
38 } Mask;
39 
40 typedef struct MaskParent {
41  //* /* Parenting flags */ /* not used. */
42  // int flag;
44  int id_type;
46  int type;
51  ID *id;
56  char parent[64];
61  char sub_parent[64];
66  float parent_orig[2];
67 
69  float parent_corners_orig[4][2];
71 
72 typedef struct MaskSplinePointUW {
74  float u, w;
76  int flag;
78 
79 typedef struct MaskSplinePoint {
82  char _pad[4];
84  int tot_uw;
90 
91 typedef struct MaskSpline {
92  struct MaskSpline *next, *prev;
93 
95  short flag;
100 
107 
111 
112 /* one per frame */
113 typedef struct MaskLayerShape {
115 
117  float *data;
119  int tot_vert;
121  int frame;
123  char flag;
124  char _pad[7];
126 
127 /* cast to this for convenience, not saved */
128 #define MASK_OBJECT_SHAPE_ELEM_SIZE 8 /* 3x 2D points + weight + radius == 8 */
129 
130 #
131 #
132 typedef struct MaskLayerShapeElem {
135 
136 typedef struct MaskLayer {
137  struct MaskLayer *next, *prev;
138 
140  char name[64];
141 
145 
150 
151  /* blending options */
152  float alpha;
153  char blend;
155  char falloff;
156  char _pad[7];
157 
159  char flag;
163 
164 /* MaskParent->flag */
165 /* #define MASK_PARENT_ACTIVE (1 << 0) */ /* UNUSED */
166 
167 /* MaskParent->type */
168 enum {
169  MASK_PARENT_POINT_TRACK = 0, /* parenting happens to point track */
170  MASK_PARENT_PLANE_TRACK = 1, /* parenting happens to plane track */
171 };
172 
173 /* MaskSpline->flag */
174 /* reserve (1 << 0) for SELECT */
175 enum {
176  MASK_SPLINE_CYCLIC = (1 << 1),
177  MASK_SPLINE_NOFILL = (1 << 2),
179 };
180 
181 /* MaskSpline->weight_interp */
182 enum {
185 };
186 
187 /* MaskSpline->offset_mode */
188 enum {
191 };
192 
193 /* MaskLayer->visibility_flag */
194 #define MASK_HIDE_VIEW (1 << 0)
195 #define MASK_HIDE_SELECT (1 << 1)
196 #define MASK_HIDE_RENDER (1 << 2)
197 
198 /* SpaceClip->mask_draw_flag */
199 /* #define MASK_DRAWFLAG_SMOOTH_DEPRECATED (1 << 0) */ /* Deprecated */
200 #define MASK_DRAWFLAG_OVERLAY (1 << 1)
201 #define MASK_DRAWFLAG_SPLINE (1 << 2)
202 
203 /* copy of eSpaceImage_UVDT */
204 /* SpaceClip->mask_draw_type */
205 enum {
210 };
211 
212 /* MaskSpaceInfo->overlay_mode */
213 typedef enum eMaskOverlayMode {
217 
218 /* masklay->blend */
219 enum {
229 };
230 
231 /* masklay->blend_flag */
232 enum {
234 };
235 
236 /* masklay->flag */
237 enum {
240 
241  /* no holes */
244 };
245 
246 /* masklay_shape->flag */
247 enum {
248  MASK_SHAPE_SELECT = (1 << 0),
249 };
250 
251 /* mask->flag */
252 enum {
253  MASK_ANIMF_EXPAND = (1 << 4),
254 };
255 
256 #ifdef __cplusplus
257 }
258 #endif
ID and Library types, which are fundamental for sdna.
These structs are the foundation for all linked lists in the library system.
@ MASK_SHAPE_SELECT
@ MASK_DT_BLACK
@ MASK_DT_WHITE
@ MASK_DT_DASH
@ MASK_DT_OUTLINE
struct MaskParent MaskParent
struct Mask Mask
struct MaskLayer MaskLayer
#define MASK_OBJECT_SHAPE_ELEM_SIZE
eMaskOverlayMode
@ MASK_OVERLAY_COMBINED
@ MASK_OVERLAY_ALPHACHANNEL
@ MASK_SPLINE_INTERP_EASE
@ MASK_SPLINE_INTERP_LINEAR
struct MaskSplinePoint MaskSplinePoint
@ MASK_LAYERFLAG_LOCKED
@ MASK_LAYERFLAG_FILL_OVERLAP
@ MASK_LAYERFLAG_FILL_DISCRETE
@ MASK_LAYERFLAG_SELECT
struct MaskSplinePointUW MaskSplinePointUW
struct MaskSpline MaskSpline
@ MASK_SPLINE_CYCLIC
@ MASK_SPLINE_NOINTERSECT
@ MASK_SPLINE_NOFILL
@ MASK_BLEND_ADD
@ MASK_BLEND_REPLACE
@ MASK_BLEND_DARKEN
@ MASK_BLEND_DIFFERENCE
@ MASK_BLEND_LIGHTEN
@ MASK_BLEND_MERGE_ADD
@ MASK_BLEND_SUBTRACT
@ MASK_BLEND_MUL
@ MASK_BLEND_MERGE_SUBTRACT
@ MASK_SPLINE_OFFSET_SMOOTH
@ MASK_SPLINE_OFFSET_EVEN
struct MaskLayerShapeElem MaskLayerShapeElem
@ MASK_ANIMF_EXPAND
@ MASK_PARENT_PLANE_TRACK
@ MASK_PARENT_POINT_TRACK
@ MASK_BLENDFLAG_INVERT
struct MaskLayerShape MaskLayerShape
Definition: DNA_ID.h:368
float value[MASK_OBJECT_SHAPE_ELEM_SIZE]
struct MaskLayerShape * prev
struct MaskLayerShape * next
struct MaskLayer * next
ListBase splines_shapes
char visibility_flag
ListBase splines
char _pad[7]
struct MaskLayer * prev
struct MaskSplinePoint * act_point
char name[64]
struct MaskSpline * act_spline
char parent[64]
float parent_orig[2]
float parent_corners_orig[4][2]
char sub_parent[64]
MaskSplinePointUW * uw
MaskParent parent
MaskParent parent
struct MaskSpline * prev
MaskSplinePoint * points_deform
char weight_interp
struct MaskSpline * next
MaskSplinePoint * points
char offset_mode
ListBase masklayers
int sfra
int masklay_tot
int flag
struct AnimData * adt
int efra
char _pad[4]
int masklay_act