eec154ea09d9c84568ef7e3f3e182a4423c4b8ce
[blender.git] / source / blender / makesdna / DNA_brush_defaults.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16
17 /** \file
18  * \ingroup DNA
19  */
20
21 #ifndef __DNA_BRUSH_DEFAULTS_H__
22 #define __DNA_BRUSH_DEFAULTS_H__
23
24 #include "DNA_texture_defaults.h"
25
26 /* Struct members on own line. */
27 /* clang-format off */
28
29 /* -------------------------------------------------------------------- */
30 /** \name Brush Struct
31  * \{ */
32
33 #define _DNA_DEFAULT_Brush \
34   { \
35     .blend = 0, \
36     .flag = (BRUSH_ALPHA_PRESSURE | BRUSH_SPACE | BRUSH_SPACE_ATTEN), \
37     .sampling_flag = (BRUSH_PAINT_ANTIALIASING), \
38  \
39     .ob_mode = OB_MODE_ALL_PAINT, \
40  \
41     /* BRUSH SCULPT TOOL SETTINGS */ \
42     .weight = 1.0f, /* weight of brush 0 - 1.0 */ \
43     .size = 35,     /* radius of the brush in pixels */ \
44     .alpha = 1.0f,  /* brush strength/intensity probably variable should be renamed? */ \
45     .autosmooth_factor = 0.0f, \
46     .topology_rake_factor = 0.0f, \
47     .crease_pinch_factor = 0.5f, \
48     .normal_radius_factor = 0.5f, \
49     .sculpt_plane = SCULPT_DISP_DIR_AREA, \
50     /* How far above or below the plane that is found by averaging the faces. */ \
51     .plane_offset = 0.0f, \
52     .plane_trim = 0.5f, \
53     .clone.alpha = 0.5f, \
54     .normal_weight = 0.0f, \
55     .fill_threshold = 0.2f, \
56  \
57     /* BRUSH PAINT TOOL SETTINGS */ \
58     /* Default rgb color of the brush when painting - white. */ \
59     .rgb = {1.0f, 1.0f, 1.0f}, \
60  \
61     .secondary_rgb = {0, 0, 0}, \
62  \
63     /* BRUSH STROKE SETTINGS */ \
64     /* How far each brush dot should be spaced as a percentage of brush diameter. */ \
65     .spacing = 10, \
66  \
67     .smooth_stroke_radius = 75, \
68     .smooth_stroke_factor = 0.9f, \
69  \
70     /* Time delay between dots of paint or sculpting when doing airbrush mode. */ \
71     .rate = 0.1f, \
72  \
73     .jitter = 0.0f, \
74  \
75     /* Dash */ \
76     .dash_ratio = 1.0f, \
77     .dash_samples = 20, \
78  \
79     .texture_sample_bias = 0, /* value to added to texture samples */ \
80     .texture_overlay_alpha = 33, \
81     .mask_overlay_alpha = 33, \
82     .cursor_overlay_alpha = 33, \
83     .overlay_flags = 0, \
84  \
85     /* brush appearance  */ \
86  \
87     /* add mode color is light red */ \
88     .add_col = {1.0, 0.39, 0.39, 0.9}, \
89  \
90     /* subtract mode color is light blue */ \
91     .sub_col = {0.39, 0.39, 1.0, 0.9}, \
92  \
93     .stencil_pos = {256, 256}, \
94     .stencil_dimension = {256, 256}, \
95  \
96     /* sculpting defaults to the draw tool for new brushes */ \
97     .sculpt_tool = SCULPT_TOOL_DRAW, \
98     .pose_smooth_iterations = 4, \
99     .pose_ik_segments = 1, \
100  \
101     /* A kernel radius of 1 has almost no effect (T63233). */ \
102     .blur_kernel_radius = 2, \
103  \
104     .mtex = _DNA_DEFAULT_MTex, \
105     .mask_mtex = _DNA_DEFAULT_MTex, \
106   }
107
108 /** \} */
109
110 /* clang-format on */
111
112 #endif /* __DNA_BRUSH_DEFAULTS_H__ */