Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/modifiers/intern/MOD_normal_edit.cc')
-rw-r--r--source/blender/modifiers/intern/MOD_normal_edit.cc25
1 files changed, 13 insertions, 12 deletions
diff --git a/source/blender/modifiers/intern/MOD_normal_edit.cc b/source/blender/modifiers/intern/MOD_normal_edit.cc
index 7d422826cf8..9a1a10f086c 100644
--- a/source/blender/modifiers/intern/MOD_normal_edit.cc
+++ b/source/blender/modifiers/intern/MOD_normal_edit.cc
@@ -47,16 +47,17 @@ static void generate_vert_coordinates(Mesh *mesh,
float (*r_cos)[3],
float r_size[3])
{
+ using namespace blender;
float min_co[3], max_co[3];
float diff[3];
bool do_diff = false;
INIT_MINMAX(min_co, max_co);
- const MVert *mv = BKE_mesh_verts(mesh);
- for (int i = 0; i < mesh->totvert; i++, mv++) {
- copy_v3_v3(r_cos[i], mv->co);
- if (r_size != nullptr && ob_center == nullptr) {
+ const Span<float3> positions = mesh->positions();
+ for (int i = 0; i < mesh->totvert; i++) {
+ copy_v3_v3(r_cos[i], positions[i]);
+ if (r_size != NULL && ob_center == NULL) {
minmax_v3v3_v3(min_co, max_co, r_cos[i]);
}
}
@@ -221,7 +222,7 @@ static void normalEditModifier_do_radial(NormalEditModifierData *enmd,
const MDeformVert *dvert,
const int defgrp_index,
const bool use_invert_vgroup,
- const MVert *mvert,
+ const float (*positions)[3],
const int verts_num,
MEdge *medge,
const int edges_num,
@@ -329,7 +330,7 @@ static void normalEditModifier_do_radial(NormalEditModifierData *enmd,
BKE_mesh_normals_tag_dirty(mesh);
}
- BKE_mesh_normals_loop_custom_set(mvert,
+ BKE_mesh_normals_loop_custom_set(positions,
BKE_mesh_vertex_normals_ensure(mesh),
verts_num,
medge,
@@ -360,7 +361,7 @@ static void normalEditModifier_do_directional(NormalEditModifierData *enmd,
const MDeformVert *dvert,
const int defgrp_index,
const bool use_invert_vgroup,
- const MVert *mvert,
+ const float (*positions)[3],
const int verts_num,
MEdge *medge,
const int edges_num,
@@ -445,7 +446,7 @@ static void normalEditModifier_do_directional(NormalEditModifierData *enmd,
BKE_mesh_normals_tag_dirty(mesh);
}
- BKE_mesh_normals_loop_custom_set(mvert,
+ BKE_mesh_normals_loop_custom_set(positions,
BKE_mesh_vertex_normals_ensure(mesh),
verts_num,
medge,
@@ -527,7 +528,7 @@ static Mesh *normalEditModifier_do(NormalEditModifierData *enmd,
const int edges_num = result->totedge;
const int loops_num = result->totloop;
const int polys_num = result->totpoly;
- const MVert *verts = BKE_mesh_verts(result);
+ const float(*positions)[3] = BKE_mesh_positions(result);
MEdge *edges = BKE_mesh_edges_for_write(result);
const MPoly *polys = BKE_mesh_polys(result);
MLoop *loops = BKE_mesh_loops_for_write(result);
@@ -549,7 +550,7 @@ static Mesh *normalEditModifier_do(NormalEditModifierData *enmd,
loopnors = static_cast<float(*)[3]>(
MEM_malloc_arrayN(size_t(loops_num), sizeof(*loopnors), __func__));
- BKE_mesh_normals_loop_split(verts,
+ BKE_mesh_normals_loop_split(positions,
vert_normals,
verts_num,
edges,
@@ -588,7 +589,7 @@ static Mesh *normalEditModifier_do(NormalEditModifierData *enmd,
dvert,
defgrp_index,
use_invert_vgroup,
- verts,
+ positions,
verts_num,
edges,
edges_num,
@@ -611,7 +612,7 @@ static Mesh *normalEditModifier_do(NormalEditModifierData *enmd,
dvert,
defgrp_index,
use_invert_vgroup,
- verts,
+ positions,
verts_num,
edges,
edges_num,