From cd1612376138878b7b5d7b7a7a8fa7c9b1633634 Mon Sep 17 00:00:00 2001 From: YimingWu Date: Thu, 20 May 2021 23:35:53 +0800 Subject: GPencil: Adding length modifier. Reviewed By: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D8264 --- .../makesdna/DNA_gpencil_modifier_defaults.h | 10 +++++++ .../blender/makesdna/DNA_gpencil_modifier_types.h | 34 ++++++++++++++++++++++ source/blender/makesdna/intern/dna_defaults.c | 2 ++ 3 files changed, 46 insertions(+) (limited to 'source/blender/makesdna') diff --git a/source/blender/makesdna/DNA_gpencil_modifier_defaults.h b/source/blender/makesdna/DNA_gpencil_modifier_defaults.h index b816a45426b..a4ab38f6022 100644 --- a/source/blender/makesdna/DNA_gpencil_modifier_defaults.h +++ b/source/blender/makesdna/DNA_gpencil_modifier_defaults.h @@ -299,4 +299,14 @@ .chaining_image_threshold = 0.001f, \ } +#define _DNA_DEFAULT_LengthGpencilModifierData \ + { \ + .start_fac = 0.1f,\ + .end_fac = 0.1f,\ + .overshoot_fac = 0.01f,\ + .pass_index = 0,\ + .material = NULL,\ + } + + /* clang-format off */ diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h index c03b358dc8a..410212ce100 100644 --- a/source/blender/makesdna/DNA_gpencil_modifier_types.h +++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h @@ -54,6 +54,7 @@ typedef enum GpencilModifierType { eGpencilModifierType_Multiply = 17, eGpencilModifierType_Texture = 18, eGpencilModifierType_Lineart = 19, + eGpencilModifierType_Length = 20, /* Keep last. */ NUM_GREASEPENCIL_MODIFIER_TYPES, } GpencilModifierType; @@ -484,6 +485,39 @@ typedef enum eLatticeGpencil_Flag { GP_LATTICE_INVERT_MATERIAL = (1 << 4), } eLatticeGpencil_Flag; +typedef struct LengthGpencilModifierData { + GpencilModifierData modifier; + /** Material for filtering. */ + struct Material *material; + /** Layer name. */ + char layername[64]; + /** Custom index for passes. */ + int pass_index; + /** Flags. */ + int flag; + /** Custom index for passes. */ + int layer_pass; + /** Length. */ + float start_fac, end_fac; + /** Overshoot trajectory factor. */ + float overshoot_fac; + /** Modifier mode. */ + int mode; + char _pad[4]; +} LengthGpencilModifierData; + +typedef enum eLengthGpencil_Flag { + GP_LENGTH_INVERT_LAYER = (1 << 0), + GP_LENGTH_INVERT_PASS = (1 << 1), + GP_LENGTH_INVERT_LAYERPASS = (1 << 2), + GP_LENGTH_INVERT_MATERIAL = (1 << 3), +} eLengthGpencil_Flag; + +typedef enum eLengthGpencil_Type { + GP_LENGTH_RELATIVE = 0, + GP_LENGTH_ABSOLUTE = 1, +} eLengthGpencil_Type; + typedef struct MirrorGpencilModifierData { GpencilModifierData modifier; struct Object *object; diff --git a/source/blender/makesdna/intern/dna_defaults.c b/source/blender/makesdna/intern/dna_defaults.c index 95272fb7804..2d55ea05867 100644 --- a/source/blender/makesdna/intern/dna_defaults.c +++ b/source/blender/makesdna/intern/dna_defaults.c @@ -316,6 +316,7 @@ SDNA_DEFAULT_DECL_STRUCT(ThickGpencilModifierData); SDNA_DEFAULT_DECL_STRUCT(TimeGpencilModifierData); SDNA_DEFAULT_DECL_STRUCT(TintGpencilModifierData); SDNA_DEFAULT_DECL_STRUCT(LineartGpencilModifierData); +SDNA_DEFAULT_DECL_STRUCT(LengthGpencilModifierData); #undef SDNA_DEFAULT_DECL_STRUCT @@ -541,6 +542,7 @@ const void *DNA_default_table[SDNA_TYPE_MAX] = { SDNA_DEFAULT_DECL(TimeGpencilModifierData), SDNA_DEFAULT_DECL(TintGpencilModifierData), SDNA_DEFAULT_DECL(LineartGpencilModifierData), + SDNA_DEFAULT_DECL(LengthGpencilModifierData), }; #undef SDNA_DEFAULT_DECL #undef SDNA_DEFAULT_DECL_EX -- cgit v1.2.3