Blender  V3.3
Classes | Macros | Typedefs | Functions
BKE_dynamicpaint.h File Reference
#include "BLI_utildefines.h"

Go to the source code of this file.

Classes

struct  PaintSurfaceData
 
struct  PaintPoint
 
struct  PaintWavePoint
 

Macros

#define DPAINT_PAINT_NONE   -1
 
#define DPAINT_PAINT_DRY   0
 
#define DPAINT_PAINT_WET   1
 
#define DPAINT_PAINT_NEW   2
 
#define DPAINT_WAVE_ISECT_CHANGED   -1
 
#define DPAINT_WAVE_NONE   0
 
#define DPAINT_WAVE_OBSTACLE   1
 
#define DPAINT_WAVE_REFLECT_ONLY   2
 

Typedefs

typedef struct PaintSurfaceData PaintSurfaceData
 
typedef struct PaintPoint PaintPoint
 
typedef struct PaintWavePoint PaintWavePoint
 

Functions

struct MeshdynamicPaint_Modifier_do (struct DynamicPaintModifierData *pmd, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct Mesh *me)
 
void dynamicPaint_Modifier_free (struct DynamicPaintModifierData *pmd)
 
void dynamicPaint_Modifier_free_runtime (struct DynamicPaintRuntime *runtime)
 
void dynamicPaint_Modifier_copy (const struct DynamicPaintModifierData *pmd, struct DynamicPaintModifierData *tpmd, int flag)
 
bool dynamicPaint_createType (struct DynamicPaintModifierData *pmd, int type, struct Scene *scene)
 
struct DynamicPaintSurfacedynamicPaint_createNewSurface (struct DynamicPaintCanvasSettings *canvas, struct Scene *scene)
 
void dynamicPaint_clearSurface (const struct Scene *scene, struct DynamicPaintSurface *surface)
 
bool dynamicPaint_resetSurface (const struct Scene *scene, struct DynamicPaintSurface *surface)
 
void dynamicPaint_freeSurface (const struct DynamicPaintModifierData *pmd, struct DynamicPaintSurface *surface)
 
void dynamicPaint_freeCanvas (struct DynamicPaintModifierData *pmd)
 
void dynamicPaint_freeBrush (struct DynamicPaintModifierData *pmd)
 
void dynamicPaint_freeSurfaceData (struct DynamicPaintSurface *surface)
 
void dynamicPaint_cacheUpdateFrames (struct DynamicPaintSurface *surface)
 
bool dynamicPaint_outputLayerExists (struct DynamicPaintSurface *surface, struct Object *ob, int output)
 
void dynamicPaintSurface_updateType (struct DynamicPaintSurface *surface)
 
void dynamicPaintSurface_setUniqueName (struct DynamicPaintSurface *surface, const char *basename)
 
struct DynamicPaintSurfaceget_activeSurface (struct DynamicPaintCanvasSettings *canvas)
 
int dynamicPaint_createUVSurface (struct Scene *scene, struct DynamicPaintSurface *surface, float *progress, short *do_update)
 
int dynamicPaint_calculateFrame (struct DynamicPaintSurface *surface, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *cObject, int frame)
 
void dynamicPaint_outputSurfaceImage (struct DynamicPaintSurface *surface, const char *filepath, short output_layer)
 

Macro Definition Documentation

◆ DPAINT_PAINT_DRY

#define DPAINT_PAINT_DRY   0

Definition at line 137 of file BKE_dynamicpaint.h.

◆ DPAINT_PAINT_NEW

#define DPAINT_PAINT_NEW   2

Definition at line 139 of file BKE_dynamicpaint.h.

◆ DPAINT_PAINT_NONE

#define DPAINT_PAINT_NONE   -1

Definition at line 136 of file BKE_dynamicpaint.h.

◆ DPAINT_PAINT_WET

#define DPAINT_PAINT_WET   1

Definition at line 138 of file BKE_dynamicpaint.h.

◆ DPAINT_WAVE_ISECT_CHANGED

#define DPAINT_WAVE_ISECT_CHANGED   -1

Definition at line 142 of file BKE_dynamicpaint.h.

◆ DPAINT_WAVE_NONE

#define DPAINT_WAVE_NONE   0

Definition at line 143 of file BKE_dynamicpaint.h.

◆ DPAINT_WAVE_OBSTACLE

#define DPAINT_WAVE_OBSTACLE   1

Definition at line 144 of file BKE_dynamicpaint.h.

◆ DPAINT_WAVE_REFLECT_ONLY

#define DPAINT_WAVE_REFLECT_ONLY   2

Definition at line 145 of file BKE_dynamicpaint.h.

Typedef Documentation

◆ PaintPoint

typedef struct PaintPoint PaintPoint

◆ PaintSurfaceData

◆ PaintWavePoint

Function Documentation

◆ dynamicPaint_cacheUpdateFrames()

void dynamicPaint_cacheUpdateFrames ( struct DynamicPaintSurface surface)

Update cache frame range.

Definition at line 2051 of file dynamicpaint.c.

References surface.

◆ dynamicPaint_calculateFrame()

int dynamicPaint_calculateFrame ( struct DynamicPaintSurface surface,
struct Depsgraph depsgraph,
struct Scene scene,
struct Object cObject,
int  frame 
)

◆ dynamicPaint_clearSurface()

void dynamicPaint_clearSurface ( const struct Scene scene,
struct DynamicPaintSurface surface 
)

Clears surface data back to zero.

Referenced by BKE_ptcache_id_reset().

◆ dynamicPaint_createNewSurface()

struct DynamicPaintSurface* dynamicPaint_createNewSurface ( struct DynamicPaintCanvasSettings canvas,
struct Scene scene 
)

◆ dynamicPaint_createType()

bool dynamicPaint_createType ( struct DynamicPaintModifierData pmd,
int  type,
struct Scene scene 
)

◆ dynamicPaint_createUVSurface()

int dynamicPaint_createUVSurface ( struct Scene scene,
struct DynamicPaintSurface surface,
float progress,
short *  do_update 
)

Image sequence baking.

Definition at line 2792 of file dynamicpaint.c.

References ADJ_BORDER_PIXEL, PaintSurfaceData::adj_data, ADJ_ON_MESH_EDGE, ImgSeqFormatData::barycentricWeights, BKE_mesh_runtime_looptri_ensure(), BKE_mesh_runtime_looptri_len(), BKE_mesh_vert_looptri_map_create(), BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), PaintAdjData::border, CD_MLOOPUV, CLOG_INFO, PaintPoint::color, copy_v2_v2(), CustomData_get_layer_named(), CustomData_has_layer(), CustomData_validate_layer_name(), data, dynamic_paint_create_uv_surface_direct_cb(), dynamic_paint_create_uv_surface_neighbor_cb(), dynamic_paint_find_neighbor_pixel(), dynamicPaint_allocateSurfaceType(), dynamicPaint_canvas_mesh_get(), dynamicPaint_freeSurfaceData(), dynamicPaint_initAdjacencyData(), dynamicPaint_pointHasNeighbor(), dynamicPaint_setInitialColor(), dynamicPaint_symmetrizeAdjData(), ELEM, error(), PaintAdjData::flags, float(), PaintSurfaceData::format_data, Mesh::ldata, LOG, max, MAX_CUSTOMDATA_LAYER_NAME, MEM_callocN, MEM_freeN, MEM_mallocN, mesh, min, minmax_v2v2_v2(), Mesh::mloop, MOD_DPAINT_ANTIALIAS, MOD_DPAINT_SURFACE_F_IMAGESEQ, Mesh::mvert, N_, PaintAdjData::n_index, PaintAdjData::n_num, PaintAdjData::n_target, PaintUVPoint::neighbor_pixel, next, NULL, ON_MESH_EDGE, OUT_OF_TEXTURE, scene, setError(), surface, PaintAdjData::total_border, PaintSurfaceData::total_points, Mesh::totloop, Mesh::totvert, PaintSurfaceData::type_data, TaskParallelSettings::use_threading, ImgSeqFormatData::uv_p, and w().

Referenced by dynamicPaint_bakeImageSequence().

◆ dynamicPaint_freeBrush()

void dynamicPaint_freeBrush ( struct DynamicPaintModifierData pmd)

◆ dynamicPaint_freeCanvas()

void dynamicPaint_freeCanvas ( struct DynamicPaintModifierData pmd)

◆ dynamicPaint_freeSurface()

void dynamicPaint_freeSurface ( const struct DynamicPaintModifierData pmd,
struct DynamicPaintSurface surface 
)

◆ dynamicPaint_freeSurfaceData()

void dynamicPaint_freeSurfaceData ( struct DynamicPaintSurface surface)

◆ dynamicPaint_Modifier_copy()

void dynamicPaint_Modifier_copy ( const struct DynamicPaintModifierData pmd,
struct DynamicPaintModifierData tpmd,
int  flag 
)

Definition at line 1181 of file dynamicpaint.c.

References DynamicPaintCanvasSettings::active_sur, DynamicPaintBrushSettings::alpha, DynamicPaintBrushSettings::b, BKE_ptcache_free_list(), BLI_strncpy(), DynamicPaintModifierData::brush, DynamicPaintSurface::brush_group, DynamicPaintModifierData::canvas, DynamicPaintBrushSettings::collision, DynamicPaintSurface::color_dry_threshold, DynamicPaintSurface::color_spread_speed, copy_v4_v4(), DynamicPaintSurface::depth_clamp, DynamicPaintSurface::disp_factor, DynamicPaintSurface::disp_type, DynamicPaintSurface::diss_speed, DynamicPaintSurface::drip_acc, DynamicPaintSurface::drip_vel, DynamicPaintSurface::dry_speed, dynamicPaint_createNewSurface(), dynamicPaint_createType(), dynamicPaint_freeSurface(), DynamicPaintSurface::effect, DynamicPaintSurface::effect_ui, DynamicPaintSurface::effector_weights, eModifierFlag_SharedCaches, DynamicPaintSurface::end_frame, ListBase::first, ModifierData::flag, DynamicPaintSurface::flags, DynamicPaintBrushSettings::flags, DynamicPaintSurface::format, DynamicPaintBrushSettings::g, DynamicPaintSurface::image_fileformat, DynamicPaintSurface::image_output_path, DynamicPaintSurface::image_resolution, DynamicPaintSurface::influence_scale, DynamicPaintSurface::init_color, DynamicPaintSurface::init_color_type, DynamicPaintSurface::init_layername, DynamicPaintSurface::init_texture, LIB_ID_COPY_SET_COPIED_ON_WRITE, DynamicPaintBrushSettings::max_velocity, MEM_dupallocN, MEM_freeN, MOD_DYNAMICPAINT_TYPE_BRUSH, MOD_DYNAMICPAINT_TYPE_CANVAS, DynamicPaintModifierData::modifier, DynamicPaintSurface::name, NULL, DynamicPaintSurface::output_name, DynamicPaintSurface::output_name2, DynamicPaintBrushSettings::paint_distance, DynamicPaintBrushSettings::paint_ramp, DynamicPaintBrushSettings::particle_radius, DynamicPaintBrushSettings::particle_smooth, DynamicPaintCanvasSettings::pmd, DynamicPaintBrushSettings::pmd, DynamicPaintSurface::pointcache, DynamicPaintBrushSettings::proximity_falloff, DynamicPaintBrushSettings::psys, DynamicPaintSurface::ptcaches, DynamicPaintBrushSettings::r, DynamicPaintSurface::radius_scale, DynamicPaintBrushSettings::ray_dir, DynamicPaintSurface::shrink_speed, DynamicPaintBrushSettings::smudge_strength, DynamicPaintSurface::spread_speed, DynamicPaintSurface::start_frame, DynamicPaintSurface::substeps, surface, DynamicPaintCanvasSettings::surfaces, DynamicPaintSurface::type, DynamicPaintModifierData::type, DynamicPaintSurface::uvlayer_name, DynamicPaintBrushSettings::vel_ramp, DynamicPaintBrushSettings::wave_clamp, DynamicPaintSurface::wave_damping, DynamicPaintBrushSettings::wave_factor, DynamicPaintSurface::wave_smoothness, DynamicPaintSurface::wave_speed, DynamicPaintSurface::wave_spring, DynamicPaintSurface::wave_timescale, DynamicPaintBrushSettings::wave_type, and DynamicPaintBrushSettings::wetness.

Referenced by copyData().

◆ dynamicPaint_Modifier_do()

struct Mesh* dynamicPaint_Modifier_do ( struct DynamicPaintModifierData pmd,
struct Depsgraph depsgraph,
struct Scene scene,
struct Object ob,
struct Mesh me 
)

Modifier call. Processes dynamic paint modifier step.

Definition at line 2160 of file dynamicpaint.c.

References depsgraph, dynamicPaint_frameUpdate(), dynamicPaint_Modifier_apply(), mesh, and scene.

Referenced by modifyMesh().

◆ dynamicPaint_Modifier_free()

void dynamicPaint_Modifier_free ( struct DynamicPaintModifierData pmd)

◆ dynamicPaint_Modifier_free_runtime()

void dynamicPaint_Modifier_free_runtime ( struct DynamicPaintRuntime runtime)

◆ dynamicPaint_outputLayerExists()

bool dynamicPaint_outputLayerExists ( struct DynamicPaintSurface surface,
struct Object ob,
int  output 
)

◆ dynamicPaint_outputSurfaceImage()

void dynamicPaint_outputSurfaceImage ( struct DynamicPaintSurface surface,
const char *  filepath,
short  output_layer 
)

◆ dynamicPaint_resetSurface()

bool dynamicPaint_resetSurface ( const struct Scene scene,
struct DynamicPaintSurface surface 
)

Completely (re)initializes surface (only for point cache types).

◆ dynamicPaintSurface_setUniqueName()

void dynamicPaintSurface_setUniqueName ( struct DynamicPaintSurface surface,
const char *  basename 
)

◆ dynamicPaintSurface_updateType()

void dynamicPaintSurface_updateType ( struct DynamicPaintSurface surface)

◆ get_activeSurface()

struct DynamicPaintSurface* get_activeSurface ( struct DynamicPaintCanvasSettings canvas)

Get currently active surface (in user interface).

Definition at line 317 of file dynamicpaint.c.

References DynamicPaintCanvasSettings::active_sur, BLI_findlink(), and DynamicPaintCanvasSettings::surfaces.

Referenced by dynamicpaint_bake_exec(), and output_toggle_exec().