Blender V5.0
BKE_crazyspace.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_array.hh"
12#include "BLI_math_matrix.hh"
13#include "BLI_span.hh"
14
15struct BMEditMesh;
16struct Depsgraph;
17struct Mesh;
18struct Object;
19struct ReportList;
20struct Scene;
21
23class Drawing;
24} // namespace blender::bke::greasepencil
25
27
43
45 const float3 &translation) const
46 {
47 if (this->deform_mats.is_empty()) {
48 return translation;
49 }
50 const float3x3 &deform_mat = this->deform_mats[position_i];
51 return math::transform_point(math::invert(deform_mat), translation);
52 }
53};
54
60GeometryDeformation get_evaluated_curves_deformation(const Object *ob_eval, const Object &ob_orig);
61GeometryDeformation get_evaluated_curves_deformation(const Depsgraph &depsgraph,
62 const Object &ob_orig);
64 const Object *ob_eval, const Object &ob_orig, const bke::greasepencil::Drawing &drawing_orig);
66 const Depsgraph &depsgraph,
67 const Object &ob_orig,
68 const bke::greasepencil::Drawing &drawing_orig);
69
70} // namespace blender::bke::crazyspace
71
76 Object *obedit);
80 float (*quats)[4],
81 bool use_select);
85 float (*quats)[4]);
91 Depsgraph *depsgraph,
92 Scene *,
93 Object *,
94 BMEditMesh *em,
98 Scene *scene,
99 Object *ob,
103 Scene *scene,
104 Object *ob,
107
108/* -------------------------------------------------------------------- */
111
112void BKE_crazyspace_api_eval(Depsgraph *depsgraph,
113 Scene *scene,
114 Object *object,
115 ReportList *reports);
116
118 ReportList *reports,
119 int vertex_index,
120 const float displacement[3],
121 float r_displacement_deformed[3]);
122
124 ReportList *reports,
125 int vertex_index,
126 const float displacement_deformed[3],
127 float r_displacement[3]);
128
130
blender::Array< blender::float3 > BKE_crazyspace_get_mapped_editverts(Depsgraph *depsgraph, Object *obedit)
Definition crazyspace.cc:91
int BKE_crazyspace_get_first_deform_matrices_editbmesh(Depsgraph *depsgraph, Scene *, Object *, BMEditMesh *em, blender::Array< blender::float3x3, 0 > &deformmats, blender::Array< blender::float3, 0 > &deformcos)
void BKE_crazyspace_build_sculpt(Depsgraph *depsgraph, Scene *scene, Object *ob, blender::Array< blender::float3x3, 0 > &deformmats, blender::Array< blender::float3, 0 > &deformcos)
void BKE_crazyspace_api_eval(Depsgraph *depsgraph, Scene *scene, Object *object, ReportList *reports)
void BKE_crazyspace_api_displacement_to_original(Object *object, ReportList *reports, int vertex_index, const float displacement_deformed[3], float r_displacement[3])
void BKE_crazyspace_set_quats_mesh(Mesh *mesh, blender::Span< blender::float3 > origcos, blender::Span< blender::float3 > mappedcos, float(*quats)[4])
void BKE_crazyspace_api_eval_clear(Object *object)
void BKE_crazyspace_api_displacement_to_deformed(Object *object, ReportList *reports, int vertex_index, const float displacement[3], float r_displacement_deformed[3])
void BKE_crazyspace_set_quats_editmesh(BMEditMesh *em, blender::Span< blender::float3 > origcos, blender::Span< blender::float3 > mappedcos, float(*quats)[4], bool use_select)
int BKE_sculpt_get_first_deform_matrices(Depsgraph *depsgraph, Scene *scene, Object *ob, blender::Array< blender::float3x3, 0 > &deformmats, blender::Array< blender::float3, 0 > &deformcos)
BPy_StructRNA * depsgraph
constexpr bool is_empty() const
Definition BLI_span.hh:260
GeometryDeformation get_evaluated_grease_pencil_drawing_deformation(const Object *ob_eval, const Object &ob_orig, const bke::greasepencil::Drawing &drawing_orig)
GeometryDeformation get_evaluated_curves_deformation(const Object *ob_eval, const Object &ob_orig)
CartesianBasis invert(const CartesianBasis &basis)
VecBase< T, 3 > transform_point(const CartesianBasis &basis, const VecBase< T, 3 > &v)
MatBase< float, 3, 3 > float3x3
VecBase< float, 3 > float3
float3 translation_from_deformed_to_original(const int position_i, const float3 &translation) const