Blender  V3.3
BKE_editmesh.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
13 #include "DNA_customdata_types.h"
14 #include "bmesh.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 struct BMLoop;
21 struct BMPartialUpdate;
22 struct BMesh;
24 struct BoundBox;
25 struct Depsgraph;
26 struct Mesh;
27 struct Object;
28 struct Scene;
29 
39 typedef struct BMEditMesh {
40  struct BMesh *bm;
41 
48  struct BMLoop *(*looptris)[3];
49  int tottri;
50 
52  short selectmode;
54  short mat_nr;
55 
58 
63 
69 
71 
72 /* editmesh.c */
73 
75  const struct BMeshCalcTessellation_Params *params);
78  struct BMPartialUpdate *bmpinfo,
79  const struct BMeshCalcTessellation_Params *params);
82  struct BMPartialUpdate *bmpinfo);
83 
89 
107 
109  struct BMEditMesh *em,
110  struct Scene *scene,
111  struct Object *ob,
112  int *r_vert_len))[3];
113 float (*BKE_editmesh_vert_coords_alloc_orco(BMEditMesh *em, int *r_vert_len))[3];
115  struct BMEditMesh *em,
116  struct Scene *scene,
117  struct Object *obedit,
118  int *r_vert_len,
119  bool *r_is_alloc))[3];
120 
121 void BKE_editmesh_lnorspace_update(BMEditMesh *em, struct Mesh *me);
125 void BKE_editmesh_ensure_autosmooth(BMEditMesh *em, struct Mesh *me);
127 
128 #ifdef __cplusplus
129 }
130 #endif
typedef float(TangentPoint)[2]
void BKE_editmesh_free_data(BMEditMesh *em)
Definition: editmesh.c:181
struct BoundBox * BKE_editmesh_cage_boundbox_get(struct Object *object, BMEditMesh *em)
void BKE_editmesh_looptri_calc(BMEditMesh *em)
Definition: editmesh.c:127
void BKE_editmesh_lnorspace_update(BMEditMesh *em, struct Mesh *me)
Definition: editmesh.c:276
void BKE_editmesh_ensure_autosmooth(BMEditMesh *em, struct Mesh *me)
Definition: editmesh.c:297
float(* BKE_editmesh_vert_coords_alloc(struct Depsgraph *depsgraph, struct BMEditMesh *em, struct Scene *scene, struct Object *ob, int *r_vert_len))[3]
Definition: editmesh.c:212
const float(* BKE_editmesh_vert_coords_when_deformed(struct Depsgraph *depsgraph, struct BMEditMesh *em, struct Scene *scene, struct Object *obedit, int *r_vert_len, bool *r_is_alloc))[3]
Definition: editmesh.c:241
void BKE_editmesh_looptri_and_normals_calc(BMEditMesh *em)
Definition: editmesh.c:135
void BKE_editmesh_looptri_and_normals_calc_with_partial(BMEditMesh *em, struct BMPartialUpdate *bmpinfo)
Definition: editmesh.c:166
BMEditMesh * BKE_editmesh_create(BMesh *bm)
Definition: editmesh.c:29
void BKE_editmesh_looptri_calc_ex(BMEditMesh *em, const struct BMeshCalcTessellation_Params *params)
Definition: editmesh.c:110
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
Definition: editmesh.c:58
BMEditMesh * BKE_editmesh_copy(BMEditMesh *em)
Definition: editmesh.c:36
float(* BKE_editmesh_vert_coords_alloc_orco(BMEditMesh *em, int *r_vert_len))[3]
Definition: editmesh.c:271
void BKE_editmesh_looptri_calc_with_partial(BMEditMesh *em, struct BMPartialUpdate *bmpinfo)
Definition: editmesh.c:157
struct BMEditMesh BMEditMesh
void BKE_editmesh_looptri_calc_with_partial_ex(BMEditMesh *em, struct BMPartialUpdate *bmpinfo, const struct BMeshCalcTessellation_Params *params)
Definition: editmesh.c:147
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
ATTR_WARN_UNUSED_RESULT BMesh * bm
Scene scene
const Depsgraph * depsgraph
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
short selectmode
Definition: BKE_editmesh.h:52
struct BMesh * bm
Definition: BKE_editmesh.h:40
short mat_nr
Definition: BKE_editmesh.h:54
char is_shallow_copy
Definition: BKE_editmesh.h:62
char needs_flush_to_id
Definition: BKE_editmesh.h:68
int mirror_cdlayer
Definition: BKE_editmesh.h:57