2022-02-10 23:07:11 +01:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
* Copyright 2008 Blender Foundation. All rights reserved. */
|
2014-05-06 22:30:51 +02:00
|
|
|
|
2019-02-17 22:08:12 +01:00
|
|
|
/** \file
|
|
|
|
* \ingroup bke
|
2014-05-06 22:30:51 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2022-01-05 09:53:48 +01:00
|
|
|
|
2014-05-06 22:30:51 +02:00
|
|
|
struct BMEditMesh;
|
2018-04-06 12:07:27 +02:00
|
|
|
struct Depsgraph;
|
2019-01-28 11:08:24 +01:00
|
|
|
struct Mesh;
|
|
|
|
struct Object;
|
2022-01-05 09:53:48 +01:00
|
|
|
struct ReportList;
|
2019-01-28 11:08:24 +01:00
|
|
|
struct Scene;
|
2014-05-06 22:30:51 +02:00
|
|
|
|
|
|
|
/* crazyspace.c */
|
2021-12-07 07:19:15 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Disable subdivision-surface temporal, get mapped coordinates, and enable it.
|
|
|
|
*/
|
2015-07-02 08:20:22 +02:00
|
|
|
float (*BKE_crazyspace_get_mapped_editverts(struct Depsgraph *depsgraph,
|
2018-04-06 12:07:27 +02:00
|
|
|
struct Object *obedit))[3];
|
2014-05-13 22:37:56 +02:00
|
|
|
void BKE_crazyspace_set_quats_editmesh(struct BMEditMesh *em,
|
|
|
|
float (*origcos)[3],
|
|
|
|
float (*mappedcos)[3],
|
|
|
|
float (*quats)[4],
|
2022-01-07 01:38:08 +01:00
|
|
|
bool use_select);
|
2015-07-02 08:20:22 +02:00
|
|
|
void BKE_crazyspace_set_quats_mesh(struct Mesh *me,
|
|
|
|
float (*origcos)[3],
|
|
|
|
float (*mappedcos)[3],
|
|
|
|
float (*quats)[4]);
|
2021-12-07 07:19:15 +01:00
|
|
|
/**
|
|
|
|
* Returns an array of deform matrices for crazy-space correction,
|
|
|
|
* and the number of modifiers left.
|
|
|
|
*/
|
2015-07-02 08:20:22 +02:00
|
|
|
int BKE_crazyspace_get_first_deform_matrices_editbmesh(struct Depsgraph *depsgraph,
|
2018-04-06 12:07:27 +02:00
|
|
|
struct Scene *,
|
|
|
|
struct Object *,
|
|
|
|
struct BMEditMesh *em,
|
2015-07-02 08:20:22 +02:00
|
|
|
float (**deformmats)[3][3],
|
|
|
|
float (**deformcos)[3]);
|
|
|
|
int BKE_sculpt_get_first_deform_matrices(struct Depsgraph *depsgraph,
|
2018-04-06 12:07:27 +02:00
|
|
|
struct Scene *scene,
|
|
|
|
struct Object *ob,
|
2015-07-02 08:20:22 +02:00
|
|
|
float (**deformmats)[3][3],
|
|
|
|
float (**deformcos)[3]);
|
|
|
|
void BKE_crazyspace_build_sculpt(struct Depsgraph *depsgraph,
|
2018-04-06 12:07:27 +02:00
|
|
|
struct Scene *scene,
|
|
|
|
struct Object *ob,
|
2015-07-02 08:20:22 +02:00
|
|
|
float (**deformmats)[3][3],
|
|
|
|
float (**deformcos)[3]);
|
2014-05-06 22:30:51 +02:00
|
|
|
|
2022-01-05 09:53:48 +01:00
|
|
|
/* -------------------------------------------------------------------- */
|
2022-01-26 06:06:22 +01:00
|
|
|
/** \name Crazy-Space API
|
2022-01-05 09:53:48 +01:00
|
|
|
* \{ */
|
|
|
|
|
|
|
|
void BKE_crazyspace_api_eval(struct Depsgraph *depsgraph,
|
|
|
|
struct Scene *scene,
|
|
|
|
struct Object *object,
|
|
|
|
struct ReportList *reports);
|
|
|
|
|
|
|
|
void BKE_crazyspace_api_displacement_to_deformed(struct Object *object,
|
|
|
|
struct ReportList *reports,
|
|
|
|
int vertex_index,
|
|
|
|
float displacement[3],
|
|
|
|
float r_displacement_deformed[3]);
|
|
|
|
|
|
|
|
void BKE_crazyspace_api_displacement_to_original(struct Object *object,
|
|
|
|
struct ReportList *reports,
|
|
|
|
int vertex_index,
|
|
|
|
float displacement_deformed[3],
|
|
|
|
float r_displacement[3]);
|
|
|
|
|
|
|
|
void BKE_crazyspace_api_eval_clear(struct Object *object);
|
|
|
|
|
|
|
|
/** \} */
|
|
|
|
|
2014-05-06 22:30:51 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|