39 void (*func)(
void *userData,
55 const float(*vertexNos)[3];
65 func(userData, i, vertexCos[i], no,
NULL);
71 func(userData, i, eve->
co, no,
NULL);
82 const int orig = *index++;
86 func(userData, orig,
mv->co,
NULL, no);
92 func(userData, i,
mv->co,
NULL, no);
101 void (*func)(
void *userData,
int index,
const float v0co[3],
const float v1co[3]),
123 func(userData, i, eed->
v1->
co, eed->
v2->
co);
134 const int orig = *index++;
138 func(userData, orig,
mv[med->
v1].co,
mv[med->
v2].co);
143 func(userData, i,
mv[med->
v1].co,
mv[med->
v2].co);
151 void (*func)(
void *userData,
187 const float *no = lnors ? *lnors++ :
NULL;
188 func(userData, v_idx, f_idx, vertexCos ? vertexCos[v_idx] : eve->
co, no);
189 }
while ((l_iter = l_iter->
next) != l_first);
204 if (v_index || f_index) {
205 for (p_idx = 0; p_idx <
mesh->
totpoly; p_idx++, mp++) {
206 for (i = 0; i < mp->
totloop; i++, ml++) {
207 const int v_idx = v_index ? v_index[ml->
v] : ml->
v;
208 const int f_idx = f_index ? f_index[p_idx] : p_idx;
209 const float *no = lnors ? *lnors++ :
NULL;
213 func(userData, v_idx, f_idx,
mv[ml->
v].co, no);
218 for (p_idx = 0; p_idx <
mesh->
totpoly; p_idx++, mp++) {
219 for (i = 0; i < mp->
totloop; i++, ml++) {
220 const int v_idx = ml->
v;
221 const int f_idx = p_idx;
222 const float *no = lnors ? *lnors++ :
NULL;
223 func(userData, v_idx, f_idx,
mv[ml->
v].co, no);
233 void (*func)(
void *userData,
int index,
const float cent[3],
const float no[3]),
240 const float(*polyCos)[3];
241 const float(*polyNos)[3];
259 const float *no = polyNos[i];
260 func(userData, i, polyCos[i], no);
266 func(userData, i, polyCos[i], no);
280 const int orig = *index++;
290 func(userData, orig, cent, no);
301 func(userData, i, cent, no);
310 void (*func)(
void *userData,
int index,
const float cent[3],
const float no[3]),
323 const int orig = *index++;
328 for (
int j = 0; j < mp->
totloop; j++, ml++) {
334 func(userData, orig,
mv->co, no);
342 for (
int j = 0; j < mp->
totloop; j++, ml++) {
348 func(userData, i,
mv->co, no);
365 const float UNUSED(no_f[3]),
366 const short UNUSED(no_s[3]))
382 memset(r_cos, 0,
sizeof(*r_cos) * totcos);
typedef float(TangentPoint)[2]
CustomData interface, see also DNA_customdata_types.h.
void * CustomData_get_layer(const struct CustomData *data, int type)
void BKE_editmesh_cache_ensure_poly_centers(struct BMEditMesh *em, struct EditMeshData *emd)
void BKE_editmesh_cache_ensure_vert_normals(struct BMEditMesh *em, struct EditMeshData *emd)
void BKE_editmesh_cache_ensure_poly_normals(struct BMEditMesh *em, struct EditMeshData *emd)
void BKE_mesh_calc_poly_center(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float r_cent[3])
void BKE_mesh_calc_poly_normal(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float r_no[3])
@ MESH_FOREACH_USE_NORMAL
#define BLI_BITMAP_TEST(_bitmap, _index)
#define BLI_BITMAP_ENABLE(_bitmap, _index)
#define BLI_BITMAP_NEW(_tot, _alloc_string)
MINLINE void normal_short_to_float_v3(float r[3], const short n[3])
MINLINE void copy_v3_v3(float r[3], const float a[3])
Read Guarded memory(de)allocation.
#define BM_FACE_FIRST_LOOP(p)
#define BM_elem_index_get(ele)
#define BM_ITER_MESH_INDEX(ele, iter, bm, itype, indexvar)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_elem_index_ensure(BMesh *bm, const char htype)
void(* MEM_freeN)(void *vmemh)
void BKE_mesh_foreach_mapped_vert_coords_get(Mesh *me_eval, float(*r_cos)[3], const int totcos)
void BKE_mesh_foreach_mapped_subdiv_face_center(Mesh *mesh, void(*func)(void *userData, int index, const float cent[3], const float no[3]), void *userData, MeshForeachFlag flag)
void BKE_mesh_foreach_mapped_vert(Mesh *mesh, void(*func)(void *userData, int index, const float co[3], const float no_f[3], const short no_s[3]), void *userData, MeshForeachFlag flag)
static void get_vertexcos__mapFunc(void *user_data, int index, const float co[3], const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
void BKE_mesh_foreach_mapped_loop(Mesh *mesh, void(*func)(void *userData, int vertex_index, int face_index, const float co[3], const float no[3]), void *userData, MeshForeachFlag flag)
void BKE_mesh_foreach_mapped_edge(Mesh *mesh, void(*func)(void *userData, int index, const float v0co[3], const float v1co[3]), void *userData)
struct MappedVCosData MappedVCosData
void BKE_mesh_foreach_mapped_face_center(Mesh *mesh, void(*func)(void *userData, int index, const float cent[3], const float no[3]), void *userData, MeshForeachFlag flag)
float const (* polyNos)[3]
const float(* polyCos)[3]
float const (* vertexNos)[3]
const float(* vertexCos)[3]
BLI_bitmap * vertex_visit
struct EditMeshData * edit_data
struct BMEditMesh * edit_mesh
struct CustomData pdata ldata