Blender V5.0
brushes.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "BLI_index_mask.hh"
10
11#include <optional>
12
13struct Brush;
14struct Depsgraph;
15struct Scene;
16struct Sculpt;
18struct StrokeCache;
19};
20struct SculptSession;
21struct Object;
22namespace blender::bke::pbvh {
23class Node;
24}
25
27
31
32 /* For planar brushes, the plane center and normal are calculated based on the original cursor
33 * position and needed for further calculations when performing brush strokes.
34 */
35 std::optional<float3> plane_center;
36 std::optional<float3> plane_normal;
37};
38
39void do_clay_brush(const Depsgraph &depsgraph,
40 const Sculpt &sd,
41 Object &ob,
42 const IndexMask &node_mask);
50void do_clay_strips_brush(const Depsgraph &depsgraph,
51 const Sculpt &sd,
52 Object &ob,
53 const IndexMask &node_mask,
54 const float3 &plane_normal,
55 const float3 &plane_center);
56namespace clay_strips {
58 const StrokeCache &cache,
59 const float3 &plane_normal,
60 const float3 &plane_center,
61 const bool flip);
63 Object &ob,
64 const Brush &brush,
65 IndexMaskMemory &memory);
66} // namespace clay_strips
67void do_clay_thumb_brush(const Depsgraph &depsgraph,
68 const Sculpt &sd,
69 Object &ob,
70 const IndexMask &node_mask);
72
73void do_crease_brush(const Depsgraph &depsgraph,
74 const Sculpt &sd,
75 Object &ob,
76 const IndexMask &node_mask);
77void do_blob_brush(const Depsgraph &depsgraph,
78 const Sculpt &sd,
79 Object &ob,
80 const IndexMask &node_mask);
81void do_bmesh_topology_rake_brush(const Depsgraph &depsgraph,
82 const Sculpt &sd,
83 Object &ob,
84 const IndexMask &node_mask,
85 float strength);
86void do_displacement_eraser_brush(const Depsgraph &depsgraph,
87 const Sculpt &sd,
88 Object &ob,
89 const IndexMask &node_mask);
90void do_displacement_smear_brush(const Depsgraph &depsgraph,
91 const Sculpt &sd,
92 Object &ob,
93 const IndexMask &node_mask);
94void do_draw_face_sets_brush(const Depsgraph &depsgraph,
95 const Sculpt &sd,
96 Object &object,
97 const IndexMask &node_mask);
99void do_draw_brush(const Depsgraph &depsgraph,
100 const Sculpt &sd,
101 Object &object,
102 const IndexMask &node_mask);
104void do_draw_vector_displacement_brush(const Depsgraph &depsgraph,
105 const Sculpt &sd,
106 Object &object,
107 const IndexMask &node_mask);
108void do_draw_sharp_brush(const Depsgraph &depsgraph,
109 const Sculpt &sd,
110 Object &object,
111 const IndexMask &node_mask);
112void do_elastic_deform_brush(const Depsgraph &depsgraph,
113 const Sculpt &sd,
114 Object &object,
115 const IndexMask &node_mask);
116void do_enhance_details_brush(const Depsgraph &depsgraph,
117 const Sculpt &sd,
118 Object &object,
119 const IndexMask &node_mask);
120void do_plane_brush(const Depsgraph &depsgraph,
121 const Sculpt &sd,
122 Object &object,
123 const IndexMask &node_mask,
124 const float3 &plane_normal,
125 const float3 &plane_center);
126
127namespace plane {
129 Object &ob,
130 const Brush &brush,
131 IndexMaskMemory &memory);
132}
133
134void do_grab_brush(const Depsgraph &depsgraph,
135 const Sculpt &sd,
136 Object &ob,
137 const IndexMask &node_mask);
138void do_gravity_brush(const Depsgraph &depsgraph,
139 const Sculpt &sd,
140 Object &ob,
141 const IndexMask &node_mask);
142void do_inflate_brush(const Depsgraph &depsgraph,
143 const Sculpt &sd,
144 Object &ob,
145 const IndexMask &node_mask);
146void do_layer_brush(const Depsgraph &depsgraph,
147 const Sculpt &sd,
148 Object &object,
149 const IndexMask &node_mask);
151void do_mask_brush(const Depsgraph &depsgraph,
152 const Sculpt &sd,
153 Object &object,
154 const IndexMask &node_mask);
155void do_multiplane_scrape_brush(const Depsgraph &depsgraph,
156 const Sculpt &sd,
157 Object &object,
158 const IndexMask &node_mask);
160 const Brush &brush,
161 const SculptSession &ss,
162 const float outline_col[3],
163 float outline_alpha);
164
165void do_pinch_brush(const Depsgraph &depsgraph,
166 const Sculpt &sd,
167 Object &object,
168 const IndexMask &node_mask);
169void do_nudge_brush(const Depsgraph &depsgraph,
170 const Sculpt &sd,
171 Object &object,
172 const IndexMask &node_mask);
173void do_relax_face_sets_brush(const Depsgraph &depsgraph,
174 const Sculpt &sd,
175 Object &object,
176 const IndexMask &node_mask);
177void do_rotate_brush(const Depsgraph &depsgraph,
178 const Sculpt &sd,
179 Object &object,
180 const IndexMask &node_mask);
182void do_smooth_brush(const Depsgraph &depsgraph,
183 const Sculpt &sd,
184 Object &object,
185 const IndexMask &node_mask,
186 float brush_strength);
188void do_smooth_mask_brush(const Depsgraph &depsgraph,
189 const Sculpt &sd,
190 Object &object,
191 const IndexMask &node_mask,
192 float brush_strength);
193void do_snake_hook_brush(const Depsgraph &depsgraph,
194 const Sculpt &sd,
195 Object &object,
196 const IndexMask &node_mask);
197void do_surface_smooth_brush(const Depsgraph &depsgraph,
198 const Sculpt &sd,
199 Object &object,
200 const IndexMask &node_mask);
201void do_thumb_brush(const Depsgraph &depsgraph,
202 const Sculpt &sd,
203 Object &object,
204 const IndexMask &node_mask);
205void do_topology_slide_brush(const Depsgraph &depsgraph,
206 const Sculpt &sd,
207 Object &object,
208 const IndexMask &node_mask);
209void do_topology_relax_brush(const Depsgraph &depsgraph,
210 const Sculpt &sd,
211 Object &object,
212 const IndexMask &node_mask);
213
214} // namespace blender::ed::sculpt_paint::brushes
unsigned int uint
BPy_StructRNA * depsgraph
float4x4 calc_local_matrix(const Brush &brush, const StrokeCache &cache, const float3 &plane_normal, const float3 &plane_center, const bool flip)
CursorSampleResult calc_node_mask(const Depsgraph &depsgraph, Object &ob, const Brush &brush, IndexMaskMemory &memory)
CursorSampleResult calc_node_mask(const Depsgraph &depsgraph, Object &ob, const Brush &brush, IndexMaskMemory &memory)
Definition plane.cc:471
void do_snake_hook_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_smooth_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, float brush_strength)
Definition smooth.cc:224
void do_mask_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_draw_face_sets_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_blob_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition crease.cc:273
void do_draw_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
Definition draw.cc:178
void do_displacement_eraser_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_elastic_deform_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void multiplane_scrape_preview_draw(uint gpuattr, const Brush &brush, const SculptSession &ss, const float outline_col[3], float outline_alpha)
void do_draw_vector_displacement_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_crease_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition crease.cc:265
void do_topology_relax_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
Definition relax.cc:794
void do_thumb_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
Definition thumb.cc:133
void do_clay_thumb_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_rotate_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_topology_slide_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_displacement_smear_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_clay_strips_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask, const float3 &plane_normal, const float3 &plane_center)
void do_surface_smooth_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_plane_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, const float3 &plane_normal, const float3 &plane_center)
Definition plane.cc:361
void do_enhance_details_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_bmesh_topology_rake_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, const float input_strength)
void do_layer_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_nudge_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
Definition draw.cc:194
void do_inflate_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition inflate.cc:130
void do_relax_face_sets_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
Definition relax.cc:760
void do_draw_sharp_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_multiplane_scrape_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_pinch_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
Definition pinch.cc:172
void do_smooth_mask_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, float brush_strength)
void do_gravity_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition draw.cc:208
float clay_thumb_get_stabilized_pressure(const StrokeCache &cache)
void do_clay_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition clay.cc:150
void do_grab_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition grab.cc:164
MatBase< float, 4, 4 > float4x4
VecBase< float, 3 > float3
static float brush_strength(const Sculpt &sd, const blender::ed::sculpt_paint::StrokeCache &cache, const float feather, const PaintModeSettings &)
Definition sculpt.cc:2175