2022-02-11 09:07:11 +11:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
2018-10-08 11:35:01 +11:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2019-02-18 08:08:12 +11:00
|
|
|
/** \file
|
|
|
|
|
* \ingroup bke
|
2018-10-08 11:35:01 +11:00
|
|
|
*/
|
|
|
|
|
|
2020-03-02 15:07:49 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
2018-10-08 11:35:01 +11:00
|
|
|
struct BMEditMesh;
|
|
|
|
|
|
2022-10-12 20:55:26 -05:00
|
|
|
typedef struct EditMeshData {
|
|
|
|
|
/** when set, \a vertexNos, polyNos are lazy initialized */
|
|
|
|
|
const float (*vertexCos)[3];
|
2018-10-08 11:35:01 +11:00
|
|
|
|
2022-10-12 20:55:26 -05:00
|
|
|
/** lazy initialize (when \a vertexCos is set) */
|
|
|
|
|
float const (*vertexNos)[3];
|
|
|
|
|
float const (*polyNos)[3];
|
|
|
|
|
/** also lazy init but don't depend on \a vertexCos */
|
|
|
|
|
const float (*polyCos)[3];
|
|
|
|
|
} EditMeshData;
|
|
|
|
|
|
|
|
|
|
void BKE_editmesh_cache_ensure_poly_normals(struct BMEditMesh *em, EditMeshData *emd);
|
|
|
|
|
void BKE_editmesh_cache_ensure_vert_normals(struct BMEditMesh *em, EditMeshData *emd);
|
|
|
|
|
|
|
|
|
|
void BKE_editmesh_cache_ensure_poly_centers(struct BMEditMesh *em, EditMeshData *emd);
|
2018-10-08 11:35:01 +11:00
|
|
|
|
2020-05-25 20:16:42 +10:00
|
|
|
bool BKE_editmesh_cache_calc_minmax(struct BMEditMesh *em,
|
2022-10-12 20:55:26 -05:00
|
|
|
EditMeshData *emd,
|
2020-05-25 20:16:42 +10:00
|
|
|
float min[3],
|
|
|
|
|
float max[3]);
|
|
|
|
|
|
2020-03-02 15:07:49 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|