Blender V4.5
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"
14#include "BLI_index_mask.hh"
16
17#include "BKE_paint.hh"
18
19struct Brush;
20struct Depsgraph;
21struct Object;
22struct Sculpt;
24struct SculptSession;
25namespace blender::bke::pbvh {
26class Node;
27}
28
30
35
38 float len;
40 float rot[4];
42
43 /* Store a 4x4 transform matrix for each of the possible combinations of enabled XYZ symmetry
44 * axis. */
45 std::array<float4x4, PAINT_SYMM_AREAS> trans_mat;
46 std::array<float4x4, PAINT_SYMM_AREAS> pivot_mat;
47 std::array<float4x4, PAINT_SYMM_AREAS> pivot_mat_inv;
48};
49
54
58void do_pose_brush(const Depsgraph &depsgraph,
59 const Sculpt &sd,
60 Object &ob,
61 const IndexMask &node_mask);
62
63std::unique_ptr<SculptPoseIKChainPreview> preview_ik_chain_init(const Depsgraph &depsgraph,
64 Object &ob,
65 SculptSession &ss,
66 const Brush &brush,
67 const float3 &initial_location,
68 float radius);
69
70} // 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