diff options
Diffstat (limited to 'source/blender/makesdna/DNA_dynamicpaint_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_dynamicpaint_types.h | 130 |
1 files changed, 80 insertions, 50 deletions
diff --git a/source/blender/makesdna/DNA_dynamicpaint_types.h b/source/blender/makesdna/DNA_dynamicpaint_types.h index 96b673fc70b..327153e1640 100644 --- a/source/blender/makesdna/DNA_dynamicpaint_types.h +++ b/source/blender/makesdna/DNA_dynamicpaint_types.h @@ -13,24 +13,39 @@ #ifndef DNA_DYNAMICPAINT_TYPES_H #define DNA_DYNAMICPAINT_TYPES_H +#include "DNA_listBase.h" struct CurveMapping; +struct PaintSurfaceData; -/* flags */ -#define MOD_DPAINT_ANTIALIAS (1<<0) /* do antialiasing */ -#define MOD_DPAINT_DISSOLVE (1<<1) /* do dissolve */ -#define MOD_DPAINT_FLATTEN (1<<2) /* do displace flatten */ -#define MOD_DPAINT_MULALPHA (1<<3) /* Multiply color by alpha when saving */ +/* surface format */ +#define MOD_DPAINT_SURFACE_F_PTEX 0 +#define MOD_DPAINT_SURFACE_F_VERTEX 1 +#define MOD_DPAINT_SURFACE_F_IMAGESEQ 2 + +/* surface type */ +#define MOD_DPAINT_SURFACE_T_PAINT 0 +#define MOD_DPAINT_SURFACE_T_DISPLACE 1 +#define MOD_DPAINT_SURFACE_T_WEIGHT 2 +#define MOD_DPAINT_SURFACE_T_IWAVE 3 + +/* surface flags */ +#define MOD_DPAINT_ACTIVE (1<<0) /* Is surface enabled */ -#define MOD_DPAINT_DRY_LOG (1<<4) /* Use 1/x for drying paint */ +#define MOD_DPAINT_ANTIALIAS (1<<1) /* do antialiasing */ +#define MOD_DPAINT_DISSOLVE (1<<2) /* do dissolve */ +#define MOD_DPAINT_MULALPHA (1<<3) /* Multiply color by alpha when saving image */ +#define MOD_DPAINT_DISSOLVE_LOG (1<<4) /* Use 1/x for surface dissolve */ +#define MOD_DPAINT_DRY_LOG (1<<5) /* Use 1/x for drying paint */ -/* output */ -#define MOD_DPAINT_OUT_PAINT (1<<0) /* output paint texture */ -#define MOD_DPAINT_OUT_WET (1<<1) /* output wetmap */ -#define MOD_DPAINT_OUT_DISP (1<<2) /* output displace texture */ +#define MOD_DPAINT_PREVIEW (1<<6) /* preview this surface on viewport*/ -/* disp_type */ -#define MOD_DPAINT_DISPFOR_PNG 0 /* displacement output format */ -#define MOD_DPAINT_DISPFOR_OPENEXR 1 /* displacement output format */ +/* canvas flags */ +#define MOD_DPAINT_PREVIEW_READY (1<<0) /* if viewport preview is ready */ +#define MOD_DPAINT_BAKING (1<<1) /* baking an image sequence */ + +/* image_fileformat */ +#define MOD_DPAINT_IMGFORMAT_PNG 0 +#define MOD_DPAINT_IMGFORMAT_OPENEXR 1 /* disp_format */ #define MOD_DPAINT_DISP_DISPLACE 0 /* displacement output displace map */ @@ -41,34 +56,53 @@ struct CurveMapping; #define MOD_DPAINT_EFFECT_DO_DRIP (1<<1) /* do spread effect */ #define MOD_DPAINT_EFFECT_DO_SHRINK (1<<2) /* do spread effect */ - -/* Canvas settings */ -typedef struct DynamicPaintCanvasSettings { - struct DynamicPaintModifierData *pmd; /* for fast RNA access */ - struct DerivedMesh *dm; - struct PaintSurface *surface; +typedef struct DynamicPaintSurface { - int flags; - int output; - short disp_type, disp_format; - int effect; - short effect_ui; // just ui selection box - short pad; // replace if need for another short - - int resolution; + struct DynamicPaintSurface *next, *prev; + struct DynamicPaintCanvasSettings *canvas; /* for fast RNA access */ + struct PaintSurfaceData *data; + + struct Group *brush_group; + + /* cache */ + struct PointCache *pointcache; + struct ListBase ptcaches; + int current_frame; + + /* surface */ + char name[64]; + short format, type; + short disp_type, image_fileformat; + short effect_ui; /* just ui selection box */ + short pad; + int flags, effect; + float intitial_color[4]; + + int image_resolution, substeps; int start_frame, end_frame; - int substeps; - int dry_speed; - int diss_speed; + int dry_speed, diss_speed; float disp_depth; - int dflat_speed; // displace flattening speed - - char paint_output_path[240], wet_output_path[240], displace_output_path[240]; float spread_speed, drip_speed, shrink_speed; char uvlayer_name[32]; + char image_output_path[240]; + char output_name[40]; + char output_name2[40]; /* some surfaces have 2 outputs */ + +} DynamicPaintSurface; + +/* Canvas settings */ +typedef struct DynamicPaintCanvasSettings { + struct DynamicPaintModifierData *pmd; /* for fast RNA access */ + struct DerivedMesh *dm; + + struct ListBase surfaces; + short active_sur, flags; + int pad; + + char ui_info[128]; // UI info text char error[64]; // Bake error description @@ -77,24 +111,20 @@ typedef struct DynamicPaintCanvasSettings { /* flags */ #define MOD_DPAINT_PART_RAD (1<<0) /* use particle radius */ -#define MOD_DPAINT_DO_PAINT (1<<1) /* use particle radius */ -#define MOD_DPAINT_DO_WETNESS (1<<2) /* use particle radius */ -#define MOD_DPAINT_DO_DISPLACE (1<<3) /* use particle radius */ - -#define MOD_DPAINT_USE_MATERIAL (1<<4) /* use object material */ -#define MOD_DPAINT_ABS_ALPHA (1<<5) /* doesn't increase alpha unless +#define MOD_DPAINT_USE_MATERIAL (1<<1) /* use object material */ +#define MOD_DPAINT_ABS_ALPHA (1<<2) /* don't increase alpha unless paint alpha is higher than existing */ -#define MOD_DPAINT_ERASE (1<<6) /* removes paint */ +#define MOD_DPAINT_ERASE (1<<3) /* removes paint */ -#define MOD_DPAINT_RAMP_ALPHA (1<<7) /* only read falloff ramp alpha */ -#define MOD_DPAINT_EDGE_DISP (1<<8) /* add displacement to intersection edges */ -#define MOD_DPAINT_PROX_FACEALIGNED (1<<9) /* do proximity check only in normal dir */ +#define MOD_DPAINT_RAMP_ALPHA (1<<4) /* only read falloff ramp alpha */ +#define MOD_DPAINT_PROX_FACEALIGNED (1<<5) /* do proximity check only in normal dir */ +//#define MOD_DPAINT_EDGE_DISP (1<<6) /* add displacement to intersection edges */ /* collision type */ -#define MOD_DPAINT_COL_VOLUME 1 /* paint with mesh volume */ -#define MOD_DPAINT_COL_DIST 2 /* paint using distance to mesh surface */ -#define MOD_DPAINT_COL_VOLDIST 3 /* use both volume and distance */ -#define MOD_DPAINT_COL_PSYS 4 /* use particle system */ +#define MOD_DPAINT_COL_VOLUME 0 /* paint with mesh volume */ +#define MOD_DPAINT_COL_DIST 1 /* paint using distance to mesh surface */ +#define MOD_DPAINT_COL_VOLDIST 2 /* use both volume and distance */ +#define MOD_DPAINT_COL_PSYS 3 /* use particle system */ /* proximity_falloff */ #define MOD_DPAINT_PRFALL_SHARP 0 /* no-falloff */ @@ -103,7 +133,7 @@ typedef struct DynamicPaintCanvasSettings { /* Painter settings */ -typedef struct DynamicPaintPainterSettings { +typedef struct DynamicPaintBrushSettings { struct DynamicPaintModifierData *pmd; /* for fast RNA access */ struct DerivedMesh *dm; struct ParticleSystem *psys; @@ -123,10 +153,10 @@ typedef struct DynamicPaintPainterSettings { struct ColorBand *paint_ramp; /* Proximity paint falloff */ short proximity_falloff; - short pad; // replace if need for new value + short brush_settings_context; /* ui settings display */ int pad2; // replace if need for new value //int pad; -} DynamicPaintPainterSettings; +} DynamicPaintBrushSettings; #endif |