Blender V4.3
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
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
23
39
41 const float3 &translation) const
42 {
43 if (this->deform_mats.is_empty()) {
44 return translation;
45 }
46 const float3x3 &deform_mat = this->deform_mats[position_i];
47 return math::transform_point(math::invert(deform_mat), translation);
48 }
49};
50
56GeometryDeformation get_evaluated_curves_deformation(const Object *ob_eval, const Object &ob_orig);
57GeometryDeformation get_evaluated_curves_deformation(const Depsgraph &depsgraph,
58 const Object &ob_orig);
59GeometryDeformation get_evaluated_grease_pencil_drawing_deformation(const Object *ob_eval,
60 const Object &ob_orig,
61 int layer_index,
62 int frame);
63GeometryDeformation get_evaluated_grease_pencil_drawing_deformation(const Depsgraph &depsgraph,
64 const Object &ob_orig,
65 int layer_index,
66 int frame);
67
68} // namespace blender::bke::crazyspace
69
74 Object *obedit);
78 float (*quats)[4],
79 bool use_select);
83 float (*quats)[4]);
89 Depsgraph *depsgraph,
90 Scene *,
91 Object *,
92 BMEditMesh *em,
96 Scene *scene,
97 Object *ob,
101 Scene *scene,
102 Object *ob,
105
106/* -------------------------------------------------------------------- */
110void BKE_crazyspace_api_eval(Depsgraph *depsgraph,
111 Scene *scene,
112 Object *object,
113 ReportList *reports);
114
116 ReportList *reports,
117 int vertex_index,
118 const float displacement[3],
119 float r_displacement_deformed[3]);
120
122 ReportList *reports,
123 int vertex_index,
124 const float displacement_deformed[3],
125 float r_displacement[3]);
126
128
blender::Array< blender::float3 > BKE_crazyspace_get_mapped_editverts(Depsgraph *depsgraph, Object *obedit)
Definition crazyspace.cc:89
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)
constexpr bool is_empty() const
Definition BLI_span.hh:261
const Depsgraph * depsgraph
GeometryDeformation get_evaluated_grease_pencil_drawing_deformation(const Object *ob_eval, const Object &ob_orig, int layer_index, int frame)
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)
float3 translation_from_deformed_to_original(const int position_i, const float3 &translation) const