Blender
V4.5
source
blender
editors
sculpt_paint
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
"
15
#include "
BLI_math_matrix_types.hh
"
16
17
#include "
BKE_paint.hh
"
18
19
struct
Brush
;
20
struct
Depsgraph;
21
struct
Object
;
22
struct
Sculpt
;
23
struct
SculptPoseIKChainPreview
;
24
struct
SculptSession
;
25
namespace
blender::bke::pbvh
{
26
class
Node
;
27
}
28
29
namespace
blender::ed::sculpt_paint::pose
{
30
32
struct
IKChainSegment
{
33
float3
orig
;
34
float3
head
;
35
36
float3
initial_orig
;
37
float3
initial_head
;
38
float
len
;
39
float3
scale
;
40
float
rot
[4];
41
Array<float>
weights
;
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
50
struct
IKChain
{
51
Array<IKChainSegment>
segments
;
52
float3
grab_delta_offset
;
53
};
54
58
void
do_pose_brush
(
const
Depsgraph &
depsgraph
,
59
const
Sculpt
&sd,
60
Object
&ob,
61
const
IndexMask
&node_mask);
62
63
std::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
BKE_paint.hh
BLI_array.hh
BLI_index_mask.hh
BLI_math_matrix_types.hh
depsgraph
BPy_StructRNA * depsgraph
Definition
bpy_driver.cc:173
blender::Array
Definition
BLI_array.hh:50
blender::bke::pbvh::Node
Definition
BKE_paint_bvh.hh:61
blender::index_mask::IndexMask
Definition
BLI_index_mask.hh:188
blender::bke::pbvh
Definition
BKE_paint.hh:41
blender::ed::sculpt_paint::pose
Definition
sculpt_intern.hh:40
blender::ed::sculpt_paint::pose::do_pose_brush
void do_pose_brush(const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
Definition
sculpt_pose.cc:2058
blender::ed::sculpt_paint::pose::preview_ik_chain_init
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)
Definition
sculpt_pose.cc:1930
blender::float3
VecBase< float, 3 > float3
Definition
BLI_math_vector_types.hh:619
Brush
Definition
DNA_brush_types.h:166
Object
Definition
DNA_object_types.h:192
SculptPoseIKChainPreview
Definition
BKE_paint.hh:347
SculptSession
Definition
BKE_paint.hh:389
Sculpt
Definition
DNA_scene_types.h:1214
blender::ed::sculpt_paint::pose::IKChainSegment
Definition
sculpt_pose.hh:32
blender::ed::sculpt_paint::pose::IKChainSegment::pivot_mat
std::array< float4x4, PAINT_SYMM_AREAS > pivot_mat
Definition
sculpt_pose.hh:46
blender::ed::sculpt_paint::pose::IKChainSegment::weights
Array< float > weights
Definition
sculpt_pose.hh:41
blender::ed::sculpt_paint::pose::IKChainSegment::head
float3 head
Definition
sculpt_pose.hh:34
blender::ed::sculpt_paint::pose::IKChainSegment::pivot_mat_inv
std::array< float4x4, PAINT_SYMM_AREAS > pivot_mat_inv
Definition
sculpt_pose.hh:47
blender::ed::sculpt_paint::pose::IKChainSegment::orig
float3 orig
Definition
sculpt_pose.hh:33
blender::ed::sculpt_paint::pose::IKChainSegment::initial_orig
float3 initial_orig
Definition
sculpt_pose.hh:36
blender::ed::sculpt_paint::pose::IKChainSegment::initial_head
float3 initial_head
Definition
sculpt_pose.hh:37
blender::ed::sculpt_paint::pose::IKChainSegment::trans_mat
std::array< float4x4, PAINT_SYMM_AREAS > trans_mat
Definition
sculpt_pose.hh:45
blender::ed::sculpt_paint::pose::IKChainSegment::len
float len
Definition
sculpt_pose.hh:38
blender::ed::sculpt_paint::pose::IKChainSegment::scale
float3 scale
Definition
sculpt_pose.hh:39
blender::ed::sculpt_paint::pose::IKChainSegment::rot
float rot[4]
Definition
sculpt_pose.hh:40
blender::ed::sculpt_paint::pose::IKChain
Definition
sculpt_pose.hh:50
blender::ed::sculpt_paint::pose::IKChain::segments
Array< IKChainSegment > segments
Definition
sculpt_pose.hh:51
blender::ed::sculpt_paint::pose::IKChain::grab_delta_offset
float3 grab_delta_offset
Definition
sculpt_pose.hh:52
Generated on
for Blender by
doxygen
1.15.0