Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Dobarro <pablodp606@gmail.com>2019-09-07 00:14:57 +0300
committerPablo Dobarro <pablodp606@gmail.com>2019-09-09 16:34:25 +0300
commit70c1aaf59ba91eede3d519caf9052ca3ef94ea9b (patch)
tree88b2d726783a147e58b6160af2d9464b5a3ac13d /source/blender/makesdna/DNA_brush_types.h
parent8127bbbe39cb10aae65883db94684791fbbd5aa9 (diff)
Sculpt: Elastic Deform Brush
This patch implements the paper "Regularized Kelvinlets: Sculpting Brushes based on Fundamental Solutions of Elasticity" https://graphics.pixar.com/library/Kelvinlets/paper.pdf It includes grab, biscale grab, triscale grab, scale and twist. All deformation modes are accessible under the same tool. This helps to keep the code organized and it should not make any difference to the user when a better brush management system is implemented. Reviewed By: brecht Differential Revision: https://developer.blender.org/D5634
Diffstat (limited to 'source/blender/makesdna/DNA_brush_types.h')
-rw-r--r--source/blender/makesdna/DNA_brush_types.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 747c7cfb842..c5d741fd25a 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -198,6 +198,14 @@ typedef enum eBrushCurvePreset {
BRUSH_CURVE_CONSTANT = 8,
} eBrushCurvePreset;
+typedef enum eBrushElasticDeformType {
+ BRUSH_ELASTIC_DEFORM_GRAB = 0,
+ BRUSH_ELASTIC_DEFORM_GRAB_BISCALE = 1,
+ BRUSH_ELASTIC_DEFORM_GRAB_TRISCALE = 2,
+ BRUSH_ELASTIC_DEFORM_SCALE = 3,
+ BRUSH_ELASTIC_DEFORM_TWIST = 4,
+} eBrushElasticDeformType;
+
typedef struct Brush {
ID id;
@@ -305,6 +313,9 @@ typedef struct Brush {
int curve_preset;
+ int elastic_deform_type;
+ float elastic_deform_compressibility;
+
/* overlay */
int texture_overlay_alpha;
int mask_overlay_alpha;
@@ -454,6 +465,7 @@ typedef enum eBrushSculptTool {
SCULPT_TOOL_CLAY_STRIPS = 18,
SCULPT_TOOL_MASK = 19,
SCULPT_TOOL_DRAW_SHARP = 20,
+ SCULPT_TOOL_ELASTIC_DEFORM = 21,
} eBrushSculptTool;
/* Brush.uv_sculpt_tool */
@@ -488,6 +500,7 @@ typedef enum eBrushUVSculptTool {
SCULPT_TOOL_THUMB, \
SCULPT_TOOL_LAYER, \
SCULPT_TOOL_DRAW_SHARP, \
+ SCULPT_TOOL_ELASTIC_DEFORM, \
\
/* These brushes could handle dynamic topology, \
* but user feedback indicates it's better not to */ \