Blender  V2.93
DNA_gpencil_modifier_types.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 
21 #pragma once
22 
23 #include "DNA_defs.h"
24 #include "DNA_listBase.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 struct LatticeDeformData;
31 
32 /* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE!
33  * (ONLY ADD NEW ITEMS AT THE END)
34  */
35 
36 typedef enum GpencilModifierType {
57  /* Keep last. */
60 
61 typedef enum GpencilModifierMode {
66  eGpencilModifierMode_Expanded_DEPRECATED = (1 << 3),
67 #endif
70 
71 typedef enum {
72  /* This modifier has been inserted in local override, and hence can be fully edited. */
75 
76 typedef struct GpencilModifierData {
78 
79  int type, mode;
80  char _pad0[4];
81  short flag;
82  /* An "expand" bit for each of the modifier's (sub)panels (uiPanelDataExpansion). */
85  char name[64];
86 
87  char *error;
89 
90 typedef struct NoiseGpencilModifierData {
93  struct Material *material;
95  char layername[64];
97  char materialname[64] DNA_DEPRECATED;
99  char vgname[64];
103  int flag;
105  float factor;
108  float factor_uvs;
110  float noise_scale;
112  char _pad[4];
114  int step;
118  int seed;
121 
122 typedef enum eNoiseGpencil_Flag {
124  GP_NOISE_MOD_LOCATION = (1 << 1), /* Deprecated (only for versioning). */
125  GP_NOISE_MOD_STRENGTH = (1 << 2), /* Deprecated (only for versioning). */
126  GP_NOISE_MOD_THICKNESS = (1 << 3), /* Deprecated (only for versioning). */
132  GP_NOISE_MOD_UV = (1 << 9), /* Deprecated (only for versioning). */
136 
142  char layername[64];
144  char materialname[64] DNA_DEPRECATED;
148  int flag;
150  int level;
154  short type;
155  char _pad[6];
157 
158 typedef enum eSubdivGpencil_Flag {
164 
165 typedef enum eSubdivGpencil_Type {
169 
170 typedef struct ThickGpencilModifierData {
175  char layername[64];
177  char materialname[64] DNA_DEPRECATED;
179  char vgname[64];
183  int flag;
190  char _pad[4];
193 
194 typedef enum eThickGpencil_Flag {
199  GP_THICK_NORMALIZE = (1 << 4),
203 
204 typedef struct TimeGpencilModifierData {
207  char layername[64];
211  int flag;
212  int offset;
214  float frame_scale;
215  int mode;
217  int sfra, efra;
218  char _pad[4];
220 
221 typedef enum eTimeGpencil_Flag {
223  GP_TIME_KEEP_LOOP = (1 << 1),
227 
228 typedef enum eTimeGpencil_Mode {
233 
240 
245 
246 typedef struct ColorGpencilModifierData {
251  char layername[64];
253  char materialname[64] DNA_DEPRECATED;
257  int flag;
259  float hsv[3];
262  char _pad[3];
265 
266  char _pad1[4];
269 
270 typedef enum eColorGpencil_Flag {
277 
283  char layername[64];
285  char materialname[64] DNA_DEPRECATED;
287  char vgname[64];
291  int flag;
293  float factor;
296  char _pad[3];
299 
300  float hardeness;
303 
304 typedef enum eOpacityGpencil_Flag {
313 
314 typedef struct ArrayGpencilModifierData {
316  struct Object *object;
320  int count;
322  int flag;
324  float offset[3];
326  float shift[3];
328  float rnd_offset[3];
330  float rnd_rot[3];
332  float rnd_scale[3];
333  char _pad[4];
335  int seed;
336 
340  char layername[64];
342  char materialname[64] DNA_DEPRECATED;
344  int mat_rpl;
348 
349 typedef enum eArrayGpencil_Flag {
359 
360 typedef struct BuildGpencilModifierData {
364 
366  char layername[64];
368 
370  char materialname[64] DNA_DEPRECATED;
371 
374 
379  float start_frame;
380  float end_frame;
381 
383  float start_delay;
385  float length;
386 
388  short flag;
389 
391  short mode;
393  short transition;
394 
402  char _pad[4];
404 
405 typedef enum eBuildGpencil_Mode {
406  /* Strokes are shown one by one until all have appeared */
408  /* All strokes start at the same time */
411 
413  /* Show in forward order */
415  /* Hide in reverse order */
417  /* Hide in forward order */
420 
422  /* All strokes start at same time */
424  /* All strokes end at same time */
426 
427  /* TODO: Random Offsets, Stretch-to-Fill */
429 
430 typedef enum eBuildGpencil_Flag {
431  /* Restrict modifier to particular layer/passes? */
434 
435  /* Restrict modifier to only operating between the nominated frames */
438 
439  /* Use a percentage instead of frame number to evaluate strokes. */
442 
445  struct Object *object;
449  char layername[64];
451  char materialname[64] DNA_DEPRECATED;
453  char vgname[64];
457  int flag;
458  float strength;
464 
465 typedef enum eLatticeGpencil_Flag {
472 
475  struct Object *object;
479  char layername[64];
481  char materialname[64] DNA_DEPRECATED;
485  int flag;
488  char _pad[4];
490 
491 typedef enum eMirrorGpencil_Flag {
494  GP_MIRROR_CLIPPING = (1 << 2),
495  GP_MIRROR_AXIS_X = (1 << 3),
496  GP_MIRROR_AXIS_Y = (1 << 4),
497  GP_MIRROR_AXIS_Z = (1 << 5),
501 
502 typedef struct HookGpencilModifierData {
504 
505  struct Object *object;
509  char subtarget[64];
511  char layername[64];
513  char materialname[64] DNA_DEPRECATED;
515  char vgname[64];
520  char _pad[4];
521 
522  int flag;
525  char _pad1[3];
527  float parentinv[4][4];
529  float cent[3];
531  float falloff;
532  float force;
535 
536 typedef enum eHookGpencil_Flag {
544 
545 typedef enum eHookGpencil_Falloff {
556 
562  char layername[64];
564  char materialname[64] DNA_DEPRECATED;
568  int flag;
570  float factor;
572  short mode;
574  short step;
578  float length;
580  float distance;
581  char _pad[4];
583 
584 typedef enum eSimplifyGpencil_Flag {
590 
591 typedef enum eSimplifyGpencil_Mode {
592  /* Keep only one vertex every n vertices */
594  /* Use RDP algorithm */
596  /* Sample the stroke using a fixed length */
598  /* Sample the stroke doing vertex merge */
601 
607  char layername[64];
609  char materialname[64] DNA_DEPRECATED;
611  char vgname[64];
615  int flag;
616  float loc[3];
617  float rot[3];
618  float scale[3];
622 
623 typedef enum eOffsetGpencil_Flag {
630 
636  char layername[64];
638  char materialname[64] DNA_DEPRECATED;
640  char vgname[64];
644  int flag;
646  float factor;
648  int step;
651 
652  char _pad1[4];
655 
656 typedef enum eSmoothGpencil_Flag {
663  GP_SMOOTH_MOD_UV = (1 << 6),
668 
673  int _pad;
674  struct Object *object;
678  char vgname[64];
679 
681 
687  char layername[64];
689  char materialname[64] DNA_DEPRECATED;
693  int flag;
696 
697  int flags;
698 
700  float distance;
701  /* -1:inner 0:middle 1:outer */
702  float offset;
703 
707 
709 
710 typedef enum eMultiplyGpencil_Flag {
711  /* GP_MULTIPLY_ENABLE_ANGLE_SPLITTING = (1 << 1), Deprecated. */
714 
715 typedef struct TintGpencilModifierData {
717 
718  struct Object *object;
722  char layername[64];
724  char materialname[64] DNA_DEPRECATED;
726  char vgname[64];
732  int flag;
734  int mode;
735 
736  float factor;
737  float radius;
739  float rgb[3];
741  int type;
742 
744 
747 
748 typedef enum eTintGpencil_Type {
752 
753 typedef enum eTintGpencil_Flag {
761 
767  char layername[64];
769  char materialname[64] DNA_DEPRECATED;
771  char vgname[64];
775  int flag;
777  float uv_offset;
778  float uv_scale;
780  float fill_offset[2];
781  float fill_scale;
785  short fit_method;
786  short mode;
789  char _pad[4];
791 
792 typedef enum eTextureGpencil_Flag {
794  GP_TEX_INVERT_PASS = (1 << 1),
799 
800 /* Texture->fit_method */
801 typedef enum eTextureGpencil_Fit {
805 
806 /* Texture->mode */
807 typedef enum eTextureGpencil_Mode {
808  STROKE = 0,
809  FILL = 1,
812 
818 
822  LRT_GPENCIL_BINARY_WEIGHTS = (1 << 2) /* Deprecated, this is removed for lack of use case. */,
825 
831 
834 
835  short edge_types; /* line type enable flags, bits in eLineartEdgeFlag */
836 
837  char source_type; /* Object or Collection, from eLineartGpencilModifierSource */
838 
840  short level_start;
841  short level_end;
842 
845 
847  char target_layer[64];
848 
854  char vgname[64];
855 
856  float opacity;
857  short thickness;
858 
859  unsigned char transparency_flags; /* eLineartGpencilTransparencyFlags */
860  unsigned char transparency_mask;
861 
864 
867 
868  /* CPU mode */
870 
871  int _pad;
872 
873  /* Ported from SceneLineArt flags. */
875 
876  /* Additional Switches. */
877  int flags;
878 
879  /* Runtime only. */
881 
883 
884 #ifdef __cplusplus
885 }
886 #endif
typedef float(TangentPoint)[2]
struct SimplifyGpencilModifierData SimplifyGpencilModifierData
struct OffsetGpencilModifierData OffsetGpencilModifierData
struct BuildGpencilModifierData BuildGpencilModifierData
@ GP_SUBDIV_INVERT_MATERIAL
@ GP_SUBDIV_INVERT_LAYERPASS
@ GP_SUBDIV_INVERT_LAYER
@ eGpencilModifierMode_Render
@ eGpencilModifierMode_Editmode
@ eGpencilModifierMode_Virtual
@ eGpencilModifierMode_Realtime
@ GP_LATTICE_INVERT_LAYERPASS
@ GP_LATTICE_INVERT_PASS
@ GP_LATTICE_INVERT_LAYER
@ GP_LATTICE_INVERT_VGROUP
@ GP_LATTICE_INVERT_MATERIAL
@ GP_BUILD_TRANSITION_FADE
@ GP_BUILD_TRANSITION_SHRINK
@ GP_BUILD_TRANSITION_GROW
struct SmoothGpencilModifierData SmoothGpencilModifierData
@ GP_BUILD_MODE_SEQUENTIAL
@ GP_BUILD_MODE_CONCURRENT
struct ArmatureGpencilModifierData ArmatureGpencilModifierData
struct SubdivGpencilModifierData SubdivGpencilModifierData
struct GpencilModifierData GpencilModifierData
@ GP_SIMPLIFY_INVERT_LAYER
@ GP_SIMPLIFY_INVERT_PASS
@ GP_SIMPLIFY_INVERT_MATERIAL
@ GP_SIMPLIFY_INVERT_LAYERPASS
struct TextureGpencilModifierData TextureGpencilModifierData
struct TintGpencilModifierData TintGpencilModifierData
@ GP_HOOK_INVERT_MATERIAL
@ GP_HOOK_INVERT_LAYERPASS
@ GP_TIME_INVERT_LAYERPASS
@ GP_COLOR_INVERT_LAYERPASS
@ GP_COLOR_INVERT_MATERIAL
struct MirrorGpencilModifierData MirrorGpencilModifierData
eLineartGpencilTransparencyFlags
@ LRT_GPENCIL_TRANSPARENCY_ENABLE
@ LRT_GPENCIL_TRANSPARENCY_MATCH
@ GP_SMOOTH_INVERT_LAYERPASS
@ GP_SMOOTH_MOD_LOCATION
@ GP_SMOOTH_MOD_STRENGTH
@ GP_SMOOTH_MOD_THICKNESS
@ GP_SMOOTH_INVERT_LAYER
@ GP_SMOOTH_CUSTOM_CURVE
@ GP_SMOOTH_INVERT_MATERIAL
@ GP_SMOOTH_INVERT_VGROUP
eLineArtGPencilModifierFlags
@ LRT_GPENCIL_INVERT_SOURCE_VGROUP
@ LRT_GPENCIL_MATCH_OUTPUT_VGROUP
@ LRT_GPENCIL_BINARY_WEIGHTS
@ GP_BUILD_TIMEALIGN_START
@ GP_BUILD_TIMEALIGN_END
@ GP_OPACITY_INVERT_LAYER
@ GP_OPACITY_INVERT_VGROUP
@ GP_OPACITY_CUSTOM_CURVE
@ GP_OPACITY_INVERT_MATERIAL
@ GP_OPACITY_INVERT_PASS
@ GP_OPACITY_INVERT_LAYERPASS
@ GP_THICK_INVERT_VGROUP
@ GP_THICK_INVERT_MATERIAL
@ GP_THICK_INVERT_LAYERPASS
@ GP_MULTIPLY_ENABLE_FADING
struct LatticeGpencilModifierData LatticeGpencilModifierData
@ GP_TEX_CONSTANT_LENGTH
eLineartGpencilModifierSource
struct ColorGpencilModifierData ColorGpencilModifierData
@ eGPHook_Falloff_InvSquare
@ eGPHook_Falloff_Smooth
@ eGPHook_Falloff_Linear
@ eGPHook_Falloff_Sphere
struct LineartGpencilModifierData LineartGpencilModifierData
struct OpacityGpencilModifierData OpacityGpencilModifierData
struct HookGpencilModifierData HookGpencilModifierData
@ GP_ARRAY_UNIFORM_RANDOM_SCALE
@ GP_ARRAY_INVERT_MATERIAL
@ GP_ARRAY_INVERT_LAYERPASS
@ GP_ARRAY_USE_OB_OFFSET
@ GP_OFFSET_INVERT_MATERIAL
@ GP_OFFSET_INVERT_LAYER
@ GP_OFFSET_INVERT_VGROUP
@ GP_OFFSET_INVERT_LAYERPASS
@ GP_TINT_INVERT_LAYERPASS
@ GP_TINT_INVERT_MATERIAL
@ GP_OPACITY_MODE_STRENGTH
@ GP_OPACITY_MODE_MATERIAL
@ GP_BUILD_RESTRICT_TIME
@ GP_BUILD_INVERT_LAYERPASS
@ GP_MIRROR_INVERT_MATERIAL
@ GP_MIRROR_INVERT_LAYER
@ GP_MIRROR_INVERT_LAYERPASS
struct MultiplyGpencilModifierData MultiplyGpencilModifierData
@ eGpencilModifierFlag_OverrideLibrary_Local
struct ThickGpencilModifierData ThickGpencilModifierData
@ GP_MODIFY_COLOR_STROKE
@ GP_MODIFY_COLOR_HARDNESS
@ GP_TEX_INVERT_LAYERPASS
@ GP_TEX_INVERT_MATERIAL
@ eGpencilModifierType_Array
@ eGpencilModifierType_Noise
@ eGpencilModifierType_Mirror
@ eGpencilModifierType_Color
@ eGpencilModifierType_Multiply
@ eGpencilModifierType_Texture
@ eGpencilModifierType_Subdiv
@ eGpencilModifierType_Lattice
@ eGpencilModifierType_Opacity
@ eGpencilModifierType_Hook
@ eGpencilModifierType_Simplify
@ eGpencilModifierType_Armature
@ eGpencilModifierType_Lineart
@ eGpencilModifierType_None
@ eGpencilModifierType_Smooth
@ eGpencilModifierType_Tint
@ NUM_GREASEPENCIL_MODIFIER_TYPES
@ eGpencilModifierType_Time
@ eGpencilModifierType_Thick
@ eGpencilModifierType_Build
@ eGpencilModifierType_Offset
struct ArrayGpencilModifierData ArrayGpencilModifierData
struct TimeGpencilModifierData TimeGpencilModifierData
@ GP_NOISE_INVERT_VGROUP
@ GP_NOISE_INVERT_MATERIAL
@ GP_NOISE_MOD_THICKNESS
@ GP_NOISE_INVERT_LAYERPASS
struct NoiseGpencilModifierData NoiseGpencilModifierData
These structs are the foundation for all linked lists in the library system.
#define DNA_DEPRECATED_ALLOW
Definition: action.c:32
char materialname[64] DNA_DEPRECATED
char materialname[64] DNA_DEPRECATED
char materialname[64] DNA_DEPRECATED
struct CurveMapping * curve_intensity
struct GpencilModifierData * next
struct GpencilModifierData * prev
char materialname[64] DNA_DEPRECATED
struct LatticeDeformData * cache_data
struct CurveMapping * curve_intensity
char materialname[64] DNA_DEPRECATED
struct CurveMapping * curve_thickness
char materialname[64] DNA_DEPRECATED
struct CurveMapping * curve_intensity
char materialname[64] DNA_DEPRECATED