Blender  V3.3
Functions | Variables
MOD_gpencilnoise.c File Reference
#include <stdio.h>
#include "BLI_hash.h"
#include "BLI_listbase.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_deform.h"
#include "BKE_gpencil.h"
#include "BKE_gpencil_geom.h"
#include "BKE_gpencil_modifier.h"
#include "BKE_lib_query.h"
#include "BKE_modifier.h"
#include "BKE_screen.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "RNA_access.h"
#include "MOD_gpencil_modifiertypes.h"
#include "MOD_gpencil_ui_common.h"
#include "MOD_gpencil_util.h"

Go to the source code of this file.

Functions

static void initData (GpencilModifierData *md)
 
static void freeData (GpencilModifierData *md)
 
static void copyData (const GpencilModifierData *md, GpencilModifierData *target)
 
static bool dependsOnTime (GpencilModifierData *md)
 
static floatnoise_table (int len, int offset, int seed)
 
BLI_INLINE float table_sample (float *table, float x)
 
static void deformStroke (GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, bGPDstroke *gps)
 
static void bakeModifier (struct Main *UNUSED(bmain), Depsgraph *depsgraph, GpencilModifierData *md, Object *ob)
 
static void foreachIDLink (GpencilModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
 
static void panel_draw (const bContext *UNUSED(C), Panel *panel)
 
static void random_header_draw (const bContext *UNUSED(C), Panel *panel)
 
static void random_panel_draw (const bContext *UNUSED(C), Panel *panel)
 
static void mask_panel_draw (const bContext *UNUSED(C), Panel *panel)
 
static void panelRegister (ARegionType *region_type)
 

Variables

GpencilModifierTypeInfo modifierType_Gpencil_Noise
 

Function Documentation

◆ bakeModifier()

static void bakeModifier ( struct Main UNUSEDbmain,
Depsgraph depsgraph,
GpencilModifierData md,
Object ob 
)
static

Definition at line 257 of file MOD_gpencilnoise.c.

References deformStroke(), depsgraph, and generic_bake_deform_stroke().

◆ copyData()

static void copyData ( const GpencilModifierData md,
GpencilModifierData target 
)
static

◆ deformStroke()

static void deformStroke ( GpencilModifierData md,
Depsgraph depsgraph,
Object ob,
bGPDlayer gpl,
bGPDframe gpf,
bGPDstroke gps 
)
static

Apply noise effect based on stroke direction.

Definition at line 109 of file MOD_gpencilnoise.c.

References BKE_curvemapping_evaluateF(), BKE_gpencil_stroke_normal(), BKE_object_defgroup_name_index(), BLI_findindex(), BLI_hash_string(), ceilf, CLAMP, clamp_f(), CLAMP_MIN, copy_v3_fl(), copy_v3_fl3(), cross_v3_v3v3(), NoiseGpencilModifierData::curve_intensity, DEG_get_ctime(), depsgraph, bGPDstroke::dvert, NoiseGpencilModifierData::factor, NoiseGpencilModifierData::factor_strength, NoiseGpencilModifierData::factor_thickness, NoiseGpencilModifierData::factor_uvs, NoiseGpencilModifierData::flag, float(), blender::math::floor(), fractf(), bGPDframe::framenum, get_modifier_point_weight(), GP_NOISE_CUSTOM_CURVE, GP_NOISE_INVERT_LAYER, GP_NOISE_INVERT_LAYERPASS, GP_NOISE_INVERT_MATERIAL, GP_NOISE_INVERT_PASS, GP_NOISE_INVERT_VGROUP, GP_NOISE_RANDOM_KEYFRAME, GP_NOISE_USE_RANDOM, GPENCIL_STRENGTH_MIN, Object::id, is_stroke_affected_by_modifier(), is_zero_v3(), NoiseGpencilModifierData::layer_pass, NoiseGpencilModifierData::layername, len, len_squared_v3(), M_PI_2, madd_v3_v3fl(), NoiseGpencilModifierData::material, max_ff(), MEM_SAFE_FREE, GpencilModifierData::name, ID::name, noise(), NoiseGpencilModifierData::noise_mode, NoiseGpencilModifierData::noise_offset, NoiseGpencilModifierData::noise_scale, noise_table(), normal, normalize_v3(), NULL, NoiseGpencilModifierData::pass_index, bGPDstroke::points, bGPDspoint::pressure, seed, NoiseGpencilModifierData::seed, NoiseGpencilModifierData::step, bGPDspoint::strength, bGPDframe::strokes, sub_v3_v3v3(), table_sample(), bGPDstroke::totpoints, bGPDspoint::uv_rot, NoiseGpencilModifierData::vgname, and bGPDspoint::x.

Referenced by bakeModifier().

◆ dependsOnTime()

static bool dependsOnTime ( GpencilModifierData md)
static

Definition at line 86 of file MOD_gpencilnoise.c.

References NoiseGpencilModifierData::flag, and GP_NOISE_USE_RANDOM.

◆ foreachIDLink()

static void foreachIDLink ( GpencilModifierData md,
Object ob,
IDWalkFunc  walk,
void userData 
)
static

Definition at line 265 of file MOD_gpencilnoise.c.

References IDWALK_CB_USER, and NoiseGpencilModifierData::material.

◆ freeData()

static void freeData ( GpencilModifierData md)
static

◆ initData()

static void initData ( GpencilModifierData md)
static

◆ mask_panel_draw()

static void mask_panel_draw ( const bContext UNUSEDC,
Panel panel 
)
static

Definition at line 320 of file MOD_gpencilnoise.c.

References gpencil_modifier_masking_panel_draw().

Referenced by panelRegister().

◆ noise_table()

static float* noise_table ( int  len,
int  offset,
int  seed 
)
static

Definition at line 92 of file MOD_gpencilnoise.c.

References BLI_hash_int_01(), BLI_hash_int_2d(), len, MEM_callocN, offset, and seed.

Referenced by deformStroke().

◆ panel_draw()

static void panel_draw ( const bContext UNUSEDC,
Panel panel 
)
static

◆ panelRegister()

static void panelRegister ( ARegionType region_type)
static

◆ random_header_draw()

static void random_header_draw ( const bContext UNUSEDC,
Panel panel 
)
static

◆ random_panel_draw()

static void random_panel_draw ( const bContext UNUSEDC,
Panel panel 
)
static

◆ table_sample()

BLI_INLINE float table_sample ( float table,
float  x 
)

Definition at line 101 of file MOD_gpencilnoise.c.

References ceilf, blender::math::floor(), fractf(), interpf(), and x.

Referenced by deformStroke().

Variable Documentation

◆ modifierType_Gpencil_Noise

GpencilModifierTypeInfo modifierType_Gpencil_Noise
Initial value:
= {
N_("Noise"),
"NoiseGpencilModifierData",
}
@ eGpencilModifierTypeFlag_SupportsEditmode
@ eGpencilModifierTypeType_Gpencil
struct NoiseGpencilModifierData NoiseGpencilModifierData
static void freeData(GpencilModifierData *md)
static void bakeModifier(struct Main *UNUSED(bmain), Depsgraph *depsgraph, GpencilModifierData *md, Object *ob)
static void foreachIDLink(GpencilModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
static bool dependsOnTime(GpencilModifierData *md)
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)
static void deformStroke(GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, bGPDstroke *gps)
static void panelRegister(ARegionType *region_type)
static void initData(GpencilModifierData *md)
#define N_(msgid)

Definition at line 341 of file MOD_gpencilnoise.c.