Blender V4.5
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 Scene &scene,
75 const Sculpt &sd,
76 Object &ob,
77 const IndexMask &node_mask);
78void do_blob_brush(const Depsgraph &depsgraph,
79 const Scene &scene,
80 const Sculpt &sd,
81 Object &ob,
82 const IndexMask &node_mask);
83void do_bmesh_topology_rake_brush(const Depsgraph &depsgraph,
84 const Sculpt &sd,
85 Object &ob,
86 const IndexMask &node_mask,
87 float strength);
88void do_displacement_eraser_brush(const Depsgraph &depsgraph,
89 const Sculpt &sd,
90 Object &ob,
91 const IndexMask &node_mask);
92void do_displacement_smear_brush(const Depsgraph &depsgraph,
93 const Sculpt &sd,
94 Object &ob,
95 const IndexMask &node_mask);
96void do_draw_face_sets_brush(const Depsgraph &depsgraph,
97 const Sculpt &sd,
98 Object &object,
99 const IndexMask &node_mask);
101void do_draw_brush(const Depsgraph &depsgraph,
102 const Sculpt &sd,
103 Object &object,
104 const IndexMask &node_mask);
106void do_draw_vector_displacement_brush(const Depsgraph &depsgraph,
107 const Sculpt &sd,
108 Object &object,
109 const IndexMask &node_mask);
110void do_draw_sharp_brush(const Depsgraph &depsgraph,
111 const Sculpt &sd,
112 Object &object,
113 const IndexMask &node_mask);
114void do_elastic_deform_brush(const Depsgraph &depsgraph,
115 const Sculpt &sd,
116 Object &object,
117 const IndexMask &node_mask);
118void do_enhance_details_brush(const Depsgraph &depsgraph,
119 const Sculpt &sd,
120 Object &object,
121 const IndexMask &node_mask);
122void do_plane_brush(const Depsgraph &depsgraph,
123 const Sculpt &sd,
124 Object &object,
125 const IndexMask &node_mask,
126 const float3 &plane_normal,
127 const float3 &plane_center);
128
129namespace plane {
131 Object &ob,
132 const Brush &brush,
133 IndexMaskMemory &memory);
134}
135
136void do_grab_brush(const Depsgraph &depsgraph,
137 const Sculpt &sd,
138 Object &ob,
139 const IndexMask &node_mask);
140void do_gravity_brush(const Depsgraph &depsgraph,
141 const Sculpt &sd,
142 Object &ob,
143 const IndexMask &node_mask);
144void do_inflate_brush(const Depsgraph &depsgraph,
145 const Sculpt &sd,
146 Object &ob,
147 const IndexMask &node_mask);
148void do_layer_brush(const Depsgraph &depsgraph,
149 const Sculpt &sd,
150 Object &object,
151 const IndexMask &node_mask);
153void do_mask_brush(const Depsgraph &depsgraph,
154 const Sculpt &sd,
155 Object &object,
156 const IndexMask &node_mask);
157void do_multiplane_scrape_brush(const Depsgraph &depsgraph,
158 const Sculpt &sd,
159 Object &object,
160 const IndexMask &node_mask);
162 const Brush &brush,
163 const SculptSession &ss,
164 const float outline_col[3],
165 float outline_alpha);
166
167void do_pinch_brush(const Depsgraph &depsgraph,
168 const Sculpt &sd,
169 Object &object,
170 const IndexMask &node_mask);
171void do_nudge_brush(const Depsgraph &depsgraph,
172 const Sculpt &sd,
173 Object &object,
174 const IndexMask &node_mask);
175void do_relax_face_sets_brush(const Depsgraph &depsgraph,
176 const Sculpt &sd,
177 Object &object,
178 const IndexMask &node_mask);
179void do_rotate_brush(const Depsgraph &depsgraph,
180 const Sculpt &sd,
181 Object &object,
182 const IndexMask &node_mask);
184void do_smooth_brush(const Depsgraph &depsgraph,
185 const Sculpt &sd,
186 Object &object,
187 const IndexMask &node_mask,
188 float brush_strength);
190void do_smooth_mask_brush(const Depsgraph &depsgraph,
191 const Sculpt &sd,
192 Object &object,
193 const IndexMask &node_mask,
194 float brush_strength);
195void do_snake_hook_brush(const Depsgraph &depsgraph,
196 const Sculpt &sd,
197 Object &object,
198 const IndexMask &node_mask);
199void do_surface_smooth_brush(const Depsgraph &depsgraph,
200 const Sculpt &sd,
201 Object &object,
202 const IndexMask &node_mask);
203void do_thumb_brush(const Depsgraph &depsgraph,
204 const Sculpt &sd,
205 Object &object,
206 const IndexMask &node_mask);
207void do_topology_slide_brush(const Depsgraph &depsgraph,
208 const Sculpt &sd,
209 Object &object,
210 const IndexMask &node_mask);
211void do_topology_relax_brush(const Depsgraph &depsgraph,
212 const Sculpt &sd,
213 Object &object,
214 const IndexMask &node_mask);
215
216} // 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_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 Scene &scene, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition crease.cc:266
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_blob_brush(const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition crease.cc:275
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 UnifiedPaintSettings &ups, const PaintModeSettings &)
Definition sculpt.cc:2157