Blender V5.0
sculpt_pose.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
8
9#pragma once
10
11#include <array>
12
13#include "BLI_array.hh"
15
16#include "BKE_paint.hh"
17
18struct Brush;
19struct Depsgraph;
20struct Object;
21struct Sculpt;
23struct SculptSession;
24namespace blender::bke::pbvh {
25class Node;
26}
27
29
34
37 float len;
39 float rot[4];
41
42 /* Store a 4x4 transform matrix for each of the possible combinations of enabled XYZ symmetry
43 * axis. */
44 std::array<float4x4, PAINT_SYMM_AREAS> trans_mat;
45 std::array<float4x4, PAINT_SYMM_AREAS> pivot_mat;
46 std::array<float4x4, PAINT_SYMM_AREAS> pivot_mat_inv;
47};
48
53
57void do_pose_brush(const Depsgraph &depsgraph,
58 const Sculpt &sd,
59 Object &ob,
60 const IndexMask &node_mask);
61
62std::unique_ptr<SculptPoseIKChainPreview> preview_ik_chain_init(const Depsgraph &depsgraph,
63 Object &ob,
64 SculptSession &ss,
65 const Brush &brush,
66 const float3 &initial_location,
67 float radius);
68
69} // namespace blender::ed::sculpt_paint::pose
BPy_StructRNA * depsgraph
void do_pose_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
std::unique_ptr< SculptPoseIKChainPreview > preview_ik_chain_init(const Depsgraph &depsgraph, Object &ob, SculptSession &ss, const Brush &brush, const float3 &initial_location, const float radius)
VecBase< float, 3 > float3
std::array< float4x4, PAINT_SYMM_AREAS > pivot_mat
std::array< float4x4, PAINT_SYMM_AREAS > pivot_mat_inv
std::array< float4x4, PAINT_SYMM_AREAS > trans_mat