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/blenkernel/intern/mesh_validate.cc')
-rw-r--r--source/blender/blenkernel/intern/mesh_validate.cc24
1 files changed, 12 insertions, 12 deletions
diff --git a/source/blender/blenkernel/intern/mesh_validate.cc b/source/blender/blenkernel/intern/mesh_validate.cc
index 9cd3b6e9e9e..d77ba8de767 100644
--- a/source/blender/blenkernel/intern/mesh_validate.cc
+++ b/source/blender/blenkernel/intern/mesh_validate.cc
@@ -33,6 +33,7 @@
#include "MEM_guardedalloc.h"
+using blender::float3;
using blender::MutableSpan;
using blender::Span;
@@ -206,7 +207,7 @@ static int search_polyloop_cmp(const void *v1, const void *v2)
/* NOLINTNEXTLINE: readability-function-size */
bool BKE_mesh_validate_arrays(Mesh *mesh,
- MVert *mverts,
+ float (*positions)[3],
uint totvert,
MEdge *medges,
uint totedge,
@@ -246,7 +247,6 @@ bool BKE_mesh_validate_arrays(Mesh *mesh,
mesh->attributes_for_write().lookup_for_write<int>("material_index");
blender::MutableVArraySpan<int> material_indices_span(material_indices.varray);
- MVert *mv = mverts;
MEdge *me;
MLoop *ml;
MPoly *mp;
@@ -303,15 +303,15 @@ bool BKE_mesh_validate_arrays(Mesh *mesh,
vert_normals = BKE_mesh_vertex_normals_ensure(mesh);
}
- for (i = 0; i < totvert; i++, mv++) {
+ for (i = 0; i < totvert; i++) {
bool fix_normal = true;
for (j = 0; j < 3; j++) {
- if (!isfinite(mv->co[j])) {
+ if (!isfinite(positions[i][j])) {
PRINT_ERR("\tVertex %u: has invalid coordinate", i);
if (do_fixes) {
- zero_v3(mv->co);
+ zero_v3(positions[i]);
fix_flag.verts = true;
}
@@ -333,7 +333,7 @@ bool BKE_mesh_validate_arrays(Mesh *mesh,
* although it's also possible degenerate/opposite faces accumulate to a zero vector.
* To detect this a full normal recalculation would be needed, which is out of scope
* for a basic validity check (see "Vertex Normal" in the doc-string). */
- if (!is_zero_v3(mv->co)) {
+ if (!is_zero_v3(positions[i])) {
PRINT_ERR("\tVertex %u: has zero normal, assuming Z-up normal", i);
if (do_fixes) {
float *normal = (float *)vert_normals[i];
@@ -1067,14 +1067,14 @@ bool BKE_mesh_validate(Mesh *me, const bool do_verbose, const bool cddata_check_
do_verbose,
true,
&changed);
- MutableSpan<MVert> verts = me->verts_for_write();
+ MutableSpan<float3> positions = me->positions_for_write();
MutableSpan<MEdge> edges = me->edges_for_write();
MutableSpan<MPoly> polys = me->polys_for_write();
MutableSpan<MLoop> loops = me->loops_for_write();
BKE_mesh_validate_arrays(me,
- verts.data(),
- verts.size(),
+ reinterpret_cast<float(*)[3]>(positions.data()),
+ positions.size(),
edges.data(),
edges.size(),
(MFace *)CustomData_get_layer(&me->fdata, CD_MFACE),
@@ -1120,14 +1120,14 @@ bool BKE_mesh_is_valid(Mesh *me)
do_fixes,
&changed);
- MutableSpan<MVert> verts = me->verts_for_write();
+ MutableSpan<float3> positions = me->positions_for_write();
MutableSpan<MEdge> edges = me->edges_for_write();
MutableSpan<MPoly> polys = me->polys_for_write();
MutableSpan<MLoop> loops = me->loops_for_write();
is_valid &= BKE_mesh_validate_arrays(me,
- verts.data(),
- verts.size(),
+ reinterpret_cast<float(*)[3]>(positions.data()),
+ positions.size(),
edges.data(),
edges.size(),
(MFace *)CustomData_get_layer(&me->fdata, CD_MFACE),