Blender V4.3
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
9#pragma once
10
11#include "BLI_math_vector.hh"
12#include "BLI_span.hh"
13
14struct Brush;
15struct Depsgraph;
16struct Object;
17struct Sculpt;
19struct SculptSession;
20namespace blender::bke::pbvh {
21class Node;
22}
23
25
30
33 float len;
35 float rot[4];
37
38 /* Store a 4x4 transform matrix for each of the possible combinations of enabled XYZ symmetry
39 * axis. */
40 std::array<float4x4, PAINT_SYMM_AREAS> trans_mat;
41 std::array<float4x4, PAINT_SYMM_AREAS> pivot_mat;
42 std::array<float4x4, PAINT_SYMM_AREAS> pivot_mat_inv;
43};
44
49
53void do_pose_brush(const Depsgraph &depsgraph,
54 const Sculpt &sd,
55 Object &ob,
56 const IndexMask &node_mask);
64void pose_brush_init(const Depsgraph &depsgraph,
65 Object &ob,
66 SculptSession &ss,
67 const Brush &brush);
68std::unique_ptr<SculptPoseIKChainPreview> preview_ik_chain_init(const Depsgraph &depsgraph,
69 Object &ob,
70 SculptSession &ss,
71 const Brush &brush,
72 const float3 &initial_location,
73 float radius);
74
75} // namespace blender::ed::sculpt_paint::pose
const Depsgraph * depsgraph
void do_pose_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void pose_brush_init(const Depsgraph &depsgraph, Object &ob, SculptSession &ss, const Brush &brush)
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)
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